2016-10-11 22 views
1

我试图从码头文件,我设置一个ENV在Dockerfile(ENV GOROOT“/usr/share/go/1.6”)中的dockerimage, ..但我无法在容器中找到相同的ENV值。该值设置为“/ usr/share/go”。 “/1.6”缺失。数字值不能设置为env使用Dockerfile#27284

步骤来重现问题:

  1. 打造Dockerfile https://gist.github.com/anumantharaja/afa1fc1684a58b2646e2ae2d80489686
  2. 运行图像
  3. 和容器内给回音$ GOROOT

结果我收到: 我收到/ usr/share/go

结果,我预计: 我预计/usr/share/go/1.6

+0

我试过用基本图像busybox(+ Dockerfile上没有扩展名),并获得了预期的结果。 – lvthillo

+0

- lorenzvth7你试过吗?这对你有用吗? –

+0

我会在答案中显示它。我可以在你看到它后删除它 – lvthillo

回答

2

Dockerfile

FROM busybox 

### Add Env 
ENV GOPATH /root/.gopkg/ 
ENV GOROOT /usr/share/go/1.6 
ENV PATH $PATH:$GOROOT/bin 

构建图像

docker build -t rom . 

开始从图像的容器:

docker run -d -it rom /bin/sh 
5dea13c392bcf8740d918be61e8d0c22d20835353a020111f467b928a8990e08 

进去容器

docker exec -it 5dea13c392bcf8740d918be61e8d0c22d20835353a020111f467b928a8990e08 /bin/sh 

回显的环境变量

/ # echo $GOROOT 
/usr/share/go/1.6 

这不是一个答案。只是为了向他表明它在我的情况下起作用。 也许这不符合他的基本形象。

+0

Thks lorenzvth7 ..问题在我身边它的工作正常...我硬编码GOROOT/usr/share /在.bashrc中找到这个值,这是问题... –

+0

我很高兴你发现你的问题。 – lvthillo