我正在尝试编写一个设置我的GOPATH变量的Dockerfile 当我以后使用变量时它是空的,例如:
Step 7 : RUN export GOPATH=/root/go
---> Running in 5691396dd55b
---> 17d76f7de05f
Removing intermediate container 5691396dd55b
Step 8 : RUN echo $GOPATH
---> Running in b2cd6ef885d0
---> 54b5a3d5c697
我尝试做一个docker build -no-cache。但我得到了相同的结果; 任何想法?
答案 0 :(得分:3)
您应该使用ENV
在Dockerfile中设置环境变量。
请参阅https://docs.docker.com/reference/builder/#env
文档补充说明:
注意:环境持久性可能会导致意外影响。例如,设置
ENV DEBIAN_FRONTEND noninteractive
可能会使基于Debian的图像上的apt-get
用户感到困惑。要为单个命令设置值,请使用RUN <key>=<value> <command>
。
“”部分很重要,因为没有它,环境变量只为发生RUN的一层设置,因此它对后续层没有影响。 ENV
将持续存在子图层。