数值无法使用 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的主要内容,如果未能解决你的问题,请参考以下文章

当通过 Dockerfile 上的 gradle 图像触发时,Jooq 无法找到数据库

无法连接到 Dockerfile 中的 Wildfly

无法在 Raspberry Pi 上从 Dockerfile 安装 dlib

无法在 Dockerfile 中运行 sysctl 命令

从dockerfile构建的docker容器运行时无法连接到Rabbit MQ实例

无法从 dockerfile 在后台运行 linux 命令?