Issue <https://github.com/docker/cli/issues/940> was on the Docker end. Updating to Edge version solved it.
Thanks for your earlier help with outlining 2 solutions to my initial problem, Rickard. On Saturday, 10 March 2018 20:40:25 UTC+1, Rickard von Essen wrote: > > Packer v1.1.3-dev (567b566c2+CHANGES) > macOS High Sierra 10.13.4 (17E160e) > > Docker Engine: 18.03.0-ce-rc1 > > Docker for Mac Version 18.03.0-ce-rc1-mac54 (23022) > > Which gives: Linux 3a126b636a9a 4.9.75-linuxkit-aufs #1 SMP Tue Jan 9 > 10:58:17 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux > > > > On 10 March 2018 at 15:03, Ivan Ribakov <ivan.r...@gmail.com <javascript:> > > wrote: > >> What OS, Docker and Packer versions are you running on? >> >> On Saturday, 10 March 2018 07:48:40 UTC+1, Rickard von Essen wrote: >>> >>> I was exporting the container instead of committing it by builder. >>>> >>> >>> Exporting only dumps the filesystem into a tar, no metadata is included. >>> >>> But as you can see ${PATH} from "changes" is not being resolved (or it >>>> is actually empty for some reason). >>>> >>> >>> Seems to work for me: >>> >>> $ docker run -it >>> sha256:134ccd664a094ef9eea184650fb24dbdad4dc59b44e81ce131d2f126e8638772 >>> bash -c 'echo $PATH' >>> >>> /usr/local/texlive/2018/bin/x86_64-linux/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin >>> >>> >>> On 9 March 2018 at 14:50, Ivan Ribakov <ivan.r...@gmail.com> wrote: >>> >>>> Thanks Rickard, I understand now why Env was null before - I was >>>> exporting the container instead of committing it by builder. >>>> >>>> I have changed my builder to the following: >>>> >>>> "builders": [{ >>>> "type": "docker", >>>> "image": "{{user `docker_source_repo`}}:{{user `docker_source_tag`}}" >>>> , >>>> "commit": true, >>>> "run_command": [ >>>> "-d", >>>> "-i", >>>> "-t", >>>> "--name", >>>> "{{user `container_name`}}", >>>> "--privileged", >>>> "{{.Image}}", >>>> "/bin/bash" >>>> ], >>>> "changes": [ >>>> "ENV PATH=/usr/local/texlive/2018/bin/x86_64-linux/:${PATH}" >>>> ] >>>> }], >>>> >>>> >>>> However, now, "docker inspect" shows following: >>>> >>>> "Env": [ >>>> "PATH=/usr/local/texlive/2018/bin/x86_64-linux/:" >>>> ], >>>> >>>> I took stripped down template from above: >>>> { >>>> "builders": [{ >>>> "type": "docker", >>>> "image": "centos:6", >>>> "commit": true, >>>> "run_command": [ >>>> "-d", >>>> "-i", >>>> "-t", >>>> "--privileged", >>>> "{{.Image}}", >>>> "/bin/bash" >>>> ], >>>> "changes": [ >>>> "ENV PATH=/usr/local/texlive/2018/bin/x86_64-linux/:${PATH}" >>>> ] >>>> }] >>>> } >>>> >>>> and ran: >>>> >>>> $ packer build docker.json >>>> [...] >>>> ==> Builds finished. The artifacts of successful builds are: >>>> --> docker: Imported Docker image: sha256: >>>> 665e385658c14cf0f19fdd584fcbbd18df0f50e281896cc6cae470ec2eee085a >>>> >>>> >>>> $ docker inspect sha256: >>>> 665e385658c14cf0f19fdd584fcbbd18df0f50e281896cc6cae470ec2eee085a -f >>>> "{{.Config.Env}}" >>>> [PATH=/usr/local/texlive/2018/bin/x86_64-linux/:] >>>> >>>> But as you can see ${PATH} from "changes" is not being resolved (or it >>>> is actually empty for some reason). >>>> >>>> I guess I'm missing something extra this time but I'm not sure where to >>>> start looking. Any ideas? >>>> >>>> On Friday, 9 March 2018 12:51:27 UTC+1, Rickard von Essen wrote: >>>>> >>>>> This works for me: >>>>> >>>>> { >>>>> "builders": [{ >>>>> "type": "docker", >>>>> "image": "centos:6", >>>>> "commit": true, >>>>> "run_command": [ >>>>> "-d", >>>>> "-i", >>>>> "-t", >>>>> "--privileged", >>>>> "{{.Image}}", >>>>> "/bin/bash" >>>>> ], >>>>> "changes": [ >>>>> "ENV PATH=/usr/local/texlive/2018/bin/x86_64-linux/:${PATH}" >>>>> ] >>>>> }] >>>>> } >>>>> >>>>> $ packer build docker.json >>>>> [...] >>>>> ==> Builds finished. The artifacts of successful builds are: >>>>> --> docker: Imported Docker image: >>>>> sha256:134ccd664a094ef9eea184650fb24dbdad4dc59b44e81ce131d2f126e8638772 >>>>> >>>>> $ docker inspect >>>>> sha256:134ccd664a094ef9eea184650fb24dbdad4dc59b44e81ce131d2f126e8638772 >>>>> -f >>>>> "{{.Config.Env}}" >>>>> >>>>> [PATH=/usr/local/texlive/2018/bin/x86_64-linux/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin] >>>>> >>>>> >>>>> >>>>> On 9 March 2018 at 12:35, Rickard von Essen <rickard....@gmail.com> >>>>> wrote: >>>>> >>>>>> However, I would like to use this opportunity to ask if after all >>>>>>> there is an alternative to "--changes" that can be performed by one of >>>>>>> provisioners. Reason I'm looking for an alternative is that I'm using >>>>>>> Ansible playbook to provision both Docker and Vagrant images. My only >>>>>>> option for now to set PATH correctly in Docker seems to be to duplicate >>>>>>> PATH configuration inside Packer template and I don't like the idea of >>>>>>> repeating the configuration for obvious reasons. >>>>>>> >>>>>> >>>>>> You have two options: >>>>>> >>>>>> a) Either you use the same provisioner and configure bashrc or >>>>>> profile but then you have to invoke them the same, i.e. docker exec >>>>>> <container> bash (-l) -c test.sh >>>>>> >>>>>> or >>>>>> >>>>>> b) Use bashrc or profile in the vagrant image since that is invoking >>>>>> bash when you ssh into it and use changes ENV PATH=... to add test.sh to >>>>>> the path in the docker image where bash is not automatically invoked by >>>>>> docker exec. >>>>>> >>>>>> >>>>>> On 8 March 2018 at 22:05, Ivan Ribakov <ivan.r...@gmail.com> wrote: >>>>>> >>>>>>> Alvaro: >>>>>>> >>>>>>> I posted this question here because of the Packer way to build >>>>>>> Docker images, i.e. without using Dockerfiles. I'm hoping that this >>>>>>> place >>>>>>> has higher concentration of people who work with Docker without >>>>>>> Dockerfiles >>>>>>> and as such can help me with my query. >>>>>>> In case you are wondering, earlier snippet can be replicated using >>>>>>> following Packer template >>>>>>> <https://gist.github.com/IvanRibakov/fa69cc2fe87d133ff55405d384638f66> >>>>>>> . >>>>>>> P.S. last line in the snippet should be "docker run" not "docker >>>>>>> exec". >>>>>>> >>>>>>> Rickard: >>>>>>> >>>>>>> Thanks again for taking your time today to help me out. Another >>>>>>> answer <https://stackoverflow.com/a/49175304/258825> on my SO >>>>>>> question already suggested use of "--changes": it is definitely the >>>>>>> winning >>>>>>> option for me at the moment. >>>>>>> >>>>>>> However, I would like to use this opportunity to ask if after all >>>>>>> there is an alternative to "--changes" that can be performed by one of >>>>>>> provisioners. Reason I'm looking for an alternative is that I'm using >>>>>>> Ansible playbook to provision both Docker and Vagrant images. My only >>>>>>> option for now to set PATH correctly in Docker seems to be to duplicate >>>>>>> PATH configuration inside Packer template and I don't like the idea of >>>>>>> repeating the configuration for obvious reasons. >>>>>>> >>>>>>> I appreciate that this is not an issue with Packer at all, but as >>>>>>> mentioned earlier, seeing how this forum has a high concentration of >>>>>>> people >>>>>>> who work with Docker without Dockerfiles I was hoping that someone >>>>>>> might >>>>>>> know a better answer (and if not, could perhaps at least hint where the >>>>>>> limitation lies). >>>>>>> >>>>>>> >>>>>>> On Thursday, 8 March 2018 19:33:20 UTC+1, Rickard von Essen wrote: >>>>>>>> >>>>>>>> Use changes and ENV to set the PATH, see >>>>>>>> https://www.packer.io/docs/builders/docker.html#basic-example-changes-to-metadata >>>>>>>> >>>>>>>> On Mar 8, 2018 7:00 PM, "Alvaro Miranda Aguilera" <kik...@gmail.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> where packer fits here ? >>>>>>>>> >>>>>>>>> On Thu, Mar 8, 2018 at 6:02 PM, Ivan Ribakov <ivan.r...@gmail.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> I'm building a docker image and using Ansible for provisioning. I >>>>>>>>>> would like to be able to update image's PATH variable from inside >>>>>>>>>> the >>>>>>>>>> container (I don't need these changes to take effect immediately, as >>>>>>>>>> long >>>>>>>>>> as they are commited to an image and are available later). Is there >>>>>>>>>> a way >>>>>>>>>> to do it? >>>>>>>>>> >>>>>>>>>> To illustrate my point: >>>>>>>>>> >>>>>>>>>> $ docker run -itd --name test centos:6 >>>>>>>>>> $ docker exec -it test /bin/bash >>>>>>>>>> [root@006a9c3195b6 /]# echo 'echo SUCCESS' > /root/test.sh >>>>>>>>>> [root@006a9c3195b6 /]# chmod +x /root/test.sh >>>>>>>>>> [root@006a9c3195b6 /]# echo 'export PATH=/root:$PATH' > >>>>>>>>>> /etc/profile.d/my_settings.sh >>>>>>>>>> [root@006a9c3195b6 /]# echo 'PATH=/root:$PATH' > /etc/environment >>>>>>>>>> [root@006a9c3195b6 /]# echo 'export PATH=/root:$PATH' > ~/.bashrc >>>>>>>>>> [root@006a9c3195b6 /]# exit >>>>>>>>>> $ docker commit test test-image:1 >>>>>>>>>> $ docker exec -it test-image:1 test.sh >>>>>>>>>> OCI runtime exec failed: exec failed: container_linux.go:296: >>>>>>>>>> starting container process caused "exec: \"test.sh\": executable >>>>>>>>>> file not found in $PATH": unknown >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> However, following works: >>>>>>>>>> >>>>>>>>>> $ docker run -it test-image:1 /bin/bash >>>>>>>>>> [root@8f821c7b9b82 /]# test.sh >>>>>>>>>> SUCCESS >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Any ideas as to what I'm doing wrong? >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> This mailing list is governed under the HashiCorp Community >>>>>>>>>> Guidelines - https://www.hashicorp.com/community-guidelines.html. >>>>>>>>>> Behavior in violation of those guidelines may result in your removal >>>>>>>>>> from >>>>>>>>>> this mailing list. >>>>>>>>>> >>>>>>>>>> GitHub Issues: https://github.com/mitchellh/packer/issues >>>>>>>>>> IRC: #packer-tool on Freenode >>>>>>>>>> --- >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>> Google Groups "Packer" group. >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>>> send an email to packer-tool...@googlegroups.com. >>>>>>>>>> To view this discussion on the web visit >>>>>>>>>> https://groups.google.com/d/msgid/packer-tool/e4cb8df6-fe4e-48bc-9064-64ce4cabae79%40googlegroups.com >>>>>>>>>> >>>>>>>>>> <https://groups.google.com/d/msgid/packer-tool/e4cb8df6-fe4e-48bc-9064-64ce4cabae79%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>> . >>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Alvaro >>>>>>>>> >>>>>>>>> -- >>>>>>>>> This mailing list is governed under the HashiCorp Community >>>>>>>>> Guidelines - https://www.hashicorp.com/community-guidelines.html. >>>>>>>>> Behavior in violation of those guidelines may result in your removal >>>>>>>>> from >>>>>>>>> this mailing list. >>>>>>>>> >>>>>>>>> GitHub Issues: https://github.com/mitchellh/packer/issues >>>>>>>>> IRC: #packer-tool on Freenode >>>>>>>>> --- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Packer" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to packer-tool...@googlegroups.com. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/packer-tool/CAHqq0eyK01mTYLZDQmxdz-U%3DWbFj39dFkcNHEDZ883nXukym9Q%40mail.gmail.com >>>>>>>>> >>>>>>>>> <https://groups.google.com/d/msgid/packer-tool/CAHqq0eyK01mTYLZDQmxdz-U%3DWbFj39dFkcNHEDZ883nXukym9Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> -- >>>>>>> This mailing list is governed under the HashiCorp Community >>>>>>> Guidelines - https://www.hashicorp.com/community-guidelines.html. >>>>>>> Behavior in violation of those guidelines may result in your removal >>>>>>> from >>>>>>> this mailing list. >>>>>>> >>>>>>> GitHub Issues: https://github.com/mitchellh/packer/issues >>>>>>> IRC: #packer-tool on Freenode >>>>>>> --- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Packer" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to packer-tool...@googlegroups.com. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/packer-tool/60a0484d-9850-4046-82b0-0b09152b6447%40googlegroups.com >>>>>>> >>>>>>> <https://groups.google.com/d/msgid/packer-tool/60a0484d-9850-4046-82b0-0b09152b6447%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> >>>>> -- >>>> This mailing list is governed under the HashiCorp Community Guidelines >>>> - https://www.hashicorp.com/community-guidelines.html. Behavior in >>>> violation of those guidelines may result in your removal from this mailing >>>> list. >>>> >>>> GitHub Issues: https://github.com/mitchellh/packer/issues >>>> IRC: #packer-tool on Freenode >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Packer" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to packer-tool...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/packer-tool/1a1ec019-349e-42ef-bef8-719e588f4349%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/packer-tool/1a1ec019-349e-42ef-bef8-719e588f4349%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> This mailing list is governed under the HashiCorp Community Guidelines - >> https://www.hashicorp.com/community-guidelines.html. Behavior in >> violation of those guidelines may result in your removal from this mailing >> list. >> >> GitHub Issues: https://github.com/mitchellh/packer/issues >> IRC: #packer-tool on Freenode >> --- >> You received this message because you are subscribed to the Google Groups >> "Packer" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to packer-tool...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/packer-tool/67c3c116-3480-40f7-a018-ace8c10c5e9c%40googlegroups.com >> >> <https://groups.google.com/d/msgid/packer-tool/67c3c116-3480-40f7-a018-ace8c10c5e9c%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- This mailing list is governed under the HashiCorp Community Guidelines - https://www.hashicorp.com/community-guidelines.html. Behavior in violation of those guidelines may result in your removal from this mailing list. GitHub Issues: https://github.com/mitchellh/packer/issues IRC: #packer-tool on Freenode --- You received this message because you are subscribed to the Google Groups "Packer" group. To unsubscribe from this group and stop receiving emails from it, send an email to packer-tool+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/packer-tool/32f1dc89-7adc-43c8-864e-2f8eb5902586%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.