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

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

重现问题的步骤:

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

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

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

【问题讨论】:

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

标签: docker dockerfile docker-machine


【解决方案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 这个值就是问题...
  • 很高兴您发现了您的问题。
猜你喜欢
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 2016-04-23
  • 2018-03-22
  • 1970-01-01
相关资源
最近更新 更多