Re: ‘guix pack’ automatic environment for Docker format

2018-02-15 Thread Mathieu Lirzin
Hello,

l...@gnu.org (Ludovic Courtès) writes:

> Mathieu Lirzin  skribis:
>
>> in order for the compilation environment to be fully ready I need to
>> source the /gnu/store...-profile/etc/profile for things like
>> CMAKE_PREFIX_PATH, LIBRARY_PATH, ...
>>
>> While one obvious available solution is to add an extra symlink ‘-S
>> /etc/profile=etc/profile’ and then source it manually.
>
> Actually, if you also do ‘-S /bin/bash=bin/bash’ and then run /bin/bash
> in the environment, Bash will source /etc/profile.  That should be a
> good short-term solution.

Yes it works fine when you add the ‘--login’ option when calling bash

   $ docker run -it IMAGE_ID /bin/bash --login

>> I was thinking that maybe 'guix pack -f docker' could set the ‘Env’
>> part in the ‘config.json’ [1] with the appriopriate environment
>> variables automatically.
>>
>> I would like to know if it would be a good idea, and if it is easily
>> doable?
>
> It’s definitely a good idea, and I think it wouldn’t be hard to do.
> Essentially, you’d have to follow the same approach as the one used for
> etc/profile creation in (guix profiles).  See ‘profile-derivation’ as
> well as ‘build-etc/profile’ in (guix build profiles).

Great, I will see if I can do something.

Thanks for the feedback.

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37



‘guix pack’ automatic environment for Docker format

2018-02-14 Thread Mathieu Lirzin
Hello,

I am trying to use ‘guix pack’ to provide my colleagues an easy to use
compilation environment to run with Docker.  My command to create the
container image is the following

  $ guix pack -f docker -S /bin=bin gcc-toolchain bash cmake make pkg-config 
python@2 coreutils eigen jsoncpp googletest

Then I run that image like this:

  $ IMAGE=`docker load -i docker-pack.tar.gz | cut -d' ' -f3` 
  $ docker run -it $IMAGE  /bin/bash

in order for the compilation environment to be fully ready I need to
source the /gnu/store...-profile/etc/profile for things like
CMAKE_PREFIX_PATH, LIBRARY_PATH, ...

While one obvious available solution is to add an extra symlink ‘-S
/etc/profile=etc/profile’ and then source it manually.  I was thinking
that maybe 'guix pack -f docker' could set the ‘Env’ part in the
‘config.json’ [1] with the appriopriate environment variables
automatically.

I would like to know if it would be a good idea, and if it is easily
doable?

Thanks.

[1] 
https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-description

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37