Can';t在Dockerfile中设置shell变量
我正试图写一个Dockerfile来设置我的GOPATH变量 当我以后使用该变量时,它是空的,例如:Can';t在Dockerfile中设置shell变量,docker,Docker,我正试图写一个Dockerfile来设置我的GOPATH变量 当我以后使用该变量时,它是空的,例如: Step 7 : RUN export GOPATH=/root/go ---> Running in 5691396dd55b ---> 17d76f7de05f Removing intermediate container 5691396dd55b Step 8 : RUN echo $GOPATH ---> Running in b2cd6ef885d0 --->
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构建-没有缓存。但我得到了同样的结果;
有什么想法吗?您应该使用
ENV
在Dockerfile中设置环境变量
请看
文件中的附加说明:
注意:环境持久性可能会导致意外的影响。例如,设置ENV DEBIAN_fronternate noninteractive
可能会在基于DEBIAN的映像上混淆apt get
用户。要设置单个命令的值,请使用RUN=
“”部分很重要,因为如果没有它,环境变量只为运行所在的一个层设置,因此它对后续层没有影响
ENV
将对子层保持不变。每个RUN命令都在一个新的shell中执行,因此内部进程状态不能在它们之间执行。这就像运行sh-c'export-GOPATH=/root/go';sh-c'echo$GOPATH'
也不会在后者中反映前者的变化。