Dockerfile RUN命令之间的意外行为

时间:2016-10-04 16:06:30

标签: docker dockerfile

我有一个奇怪的问题,试图按顺序执行几个RUN命令。

目标是复制文件夹。 如果我列出目标文件夹中的文件:

  • 它与&&同时运行LS
  • 它不适用于另一个RUN

这是跟踪:

Step 6 : RUN cp -rf /app/httpd/htdocs/* /opt/rh/httpd24/root/var/www/html/ && ls /opt/rh/httpd24/root/var/www/html/
 ---> Running in 05842445d075
modules
tests
 ---> 05c51d512f60
Removing intermediate container 05842445d075
Step 7 : RUN ls /opt/rh/httpd24/root/var/www/html/
 ---> Running in aa217a8edc37
 ---> 095c9f8ac8e7

你知道出了什么问题吗?

1 个答案:

答案 0 :(得分:1)

作为seen here,如果Dockerfile首先声明VOLUME,则可能发生这种情况。

复制到VOLUME的任何文件都将被丢弃,因为每个构建步骤都会根据图像的内容创建一个新卷,从而丢弃上一个构建步骤中使用的卷。