数值无法使用 Dockerfile #27284 设置为 env

Posted

技术标签:

【中文标题】数值无法使用 Dockerfile #27284 设置为 env【英文标题】:Numeric value not able to set as env using Dockerfile #27284 【发布时间】:2016-10-11 11:25:29 【问题描述】:

我正在尝试从 docker 文件构建一个 dockerimage,我在 Dockerfile 中设置了一个 ENV(ENV GOROOT "/usr/share/go/1.6").. 但我找不到相同的 ENV 值容器内。该值设置为“/usr/share/go”。缺少“/1.6”。

重现问题的步骤:

    构建 Dockerfile https://gist.github.com/anumantharaja/afa1fc1684a58b2646e2ae2d80489686 运行镜像 在容器内给 echo $GOROOT

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

我预期的结果: 我期望 /usr/share/go/1.6

【问题讨论】:

我用基础镜像busybox(+ Dockerfile上没有扩展名)进行了尝试,得到了预期的结果。 - lorenzvth7 你试过这个吗?这对你有用吗? 我会在答案中展示它。你看到后我可以删除它 【参考方案1】:

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

这不是答案。只是为了向他展示它在我的情况下有效。 也许它不适用于他的基本图像。

【讨论】:

Thks lorenzvth7.. 问题在我身边,现在工作正常...我在 .bashrc 中硬编码 GOROOT /usr/share/go 这个值就是问题... 很高兴您发现了您的问题。

以上是关于数值无法使用 Dockerfile #27284 设置为 env的主要内容,如果未能解决你的问题,请参考以下文章