我需要将bash命令分配给Dockerfile中的var。以下是我的猜测:
FROM centos:7
RUN data=$(ls /)
ENV DATA $data
运行容器(docker run exec -it <image> bash
)后,echo $DATA
输出为空。我在谷歌搜索过,但现在。我被卡住了!
如何将bash命令分配给dockerfile中的值?
答案 0 :(得分:2)
你不能这样做,因为RUN
命令会生成自己的shell。
或者,您可以将信息保存到某个文件,并在容器运行后使用ENTRYPOINT
使用某些脚本设置env变量。
答案 1 :(得分:1)
在构建docker镜像时无法设置任何变量,因为图像构建为分层文件系统,执行RUN
命令后,它会在运行时执行命令并退出,这样就可以编写docker文件了如下所示:
FROM centos:7
RUN echo 'export data=$(ls /)' >> ~/.bashrc
ENV DATA $data