FROM centos
RUN yum -y update
ENV zk=dx
RUN mkdir $zk
构建图像后和运行fallowing命令后
docker run -it -e zk="hifi" <image ID>
我得到一个名为dx的目录,但没有hifi
任何人都可以帮助我如何从docker run命令
设置Dockerfile变量答案 0 :(得分:2)
这样做是因为:
因此,当您运行 docker run 并将值设置为“hifi”时,该图像已经存在,其中包含一个名为“dx”的目录。目录创建任务已经执行 - 将环境变量更新为“hifi”不会改变它。
您无法在运行时设置Dockerfile build 变量。构建已经发生。
顺便说一下,在创建目录之前,你正在覆盖zk变量的值。如果 成功地将“hifi”传递到docker构建中,它将被覆盖并且该文件夹将始终被称为“dx”。