Dockerfile将bash命令分配给var

时间:2018-04-03 08:48:39

标签: bash docker dockerfile var assign

我需要将bash命令分配给Dockerfile中的var。以下是我的猜测:

FROM centos:7
RUN data=$(ls /)
ENV DATA $data

运行容器(docker run exec -it <image> bash)后,echo $DATA输出为空。我在谷歌搜索过,但现在。我被卡住了!

如何将bash命令分配给dockerfile中的值?

2 个答案:

答案 0 :(得分:2)

你不能这样做,因为RUN命令会生成自己的shell。

或者,您可以将信息保存到某个文件,并在容器运行后使用ENTRYPOINT使用某些脚本设置env变量。

答案 1 :(得分:1)

在构建docker镜像时无法设置任何变量,因为图像构建为分层文件系统,执行RUN命令后,它会在运行时执行命令并退出,这样就可以编写docker文件了如下所示:

FROM centos:7
RUN echo 'export data=$(ls /)' >> ~/.bashrc
ENV DATA $data