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

标签 docker dockerfile docker-machine

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

重现此问题的步骤:

  • 构建Dockerfile https://gist.github.com/anumantharaja/afa1fc1684a58b2646e2ae2d80489686
  • 运行图像
  • 和容器内部给出回显$ GOROOT

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

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

    最佳答案

    Docker文件

    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
    

    这不是答案。只是为了告诉他这对我而言有效。
    也许这与他的基本形象不符。

    关于docker - 无法使用Dockerfile#27284将数值设置为env,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39976195/

    相关文章:

    docker - 如何检查 docker 主机是否处于 swarm 模式?

    java - 如何在 Intellij 中远程调试作为 docker 容器运行的 java 应用程序

    php - 如何保护容器即服务(caas)中的源代码和数据库结构?

    docker - 如何附加到 dockerfile 或 docker run 中的路径

    continuous-integration - 使用 Dockerfile 构建自定义镜像以在 Concourse CI 上进行测试

    macos - 在 OSX 上通过 docker-py 连接到 Docker-Machine

    Golang 与 docker 的连续工作流程

    docker - 各种 Minikube + Kubernetes IP 地址有什么区别?

    docker - 在具有自己的Apache服务器的主机上运行Apache Docker容器有意义吗?

    docker - ENV/ARG命令未在Dockerfile中填充变量