Docker多阶段构建不保留RUN命令的结果

时间:2018-07-26 14:30:25

标签: docker docker-multi-stage-build

我正在使用docker-engine 17.05.0〜ce-0〜ubuntu-xenial构建此Dockerfile:

3*4*5 = 60

但是输出不符合预期。我从wordpress:apache复制的代码已正确添加到/ var / www / html,但是wp-config.php仅在实际构建步骤中存在,而在生成的图像中不存在。我不明白我在做什么错。构建时,其结束如下:

FROM wordpress:apache as codebase

FROM wordpress:cli as cli 
COPY --from=codebase /usr/src/wordpress /var/www/html

# Create a config 
RUN wp --path=/var/www/html config create --dbname=dbname --dbuser=dbuser --skip-check \
 && ls /var/www/html/wp-config.php

RUN ls /var/www/html/wp-config.php

为什么在第一个RUN中创建的wp-config.php在下一步中不可用,而我使用COPY命令放入的数据却保留在那里?

(如果您想知道我要实现的目标,这只是一个MCVE。)

1 个答案:

答案 0 :(得分:1)

wordpress:cli Dockerfile声明VOLUME /var/www/htmlVOLUME指令运行后,the content of that directory tree is fixed forever more;您尝试将内容添加到该目录的COPYRUN语句无效。