我有一个运行caddy的容器
我正在尝试删除在Dockerfile中第16步添加的文件,我的Dockerfile中有类似的内容
FROM abiosoft/caddy:1.0.3
RUN rm /srv/index.html
RUN ls
>> index.html
我们是否有解决方案来删除在先前步骤中添加的文件?还是我唯一的解决方案是“分叉” Dockerfile并删除此行?
答案 0 :(得分:0)
如果您通过链接查看图像历史记录,则会看到第13行
VOLUME [/root/.caddy /srv]
该VOLUME
指令意味着之后的RUN
命令根本无法修改该目录。您会确切地看到要报告的结果:RUN
命令显然可以成功运行,并且在单个RUN
命令中,您将看到文件已更改,但不会在运行中持久存在。
RUN rm /srv/index.html \
&& echo 'ls -l in same RUN line' \
&& ls -l /srv
RUN echo 'ls -l in separate RUN line' \
&& ls -l /srv
如果不分叉原始Dockerfile,则无法撤消此操作。
答案 1 :(得分:0)
除了Dockerfile的fork之外,还有另一种选择。您可以在运行容器时挂载src
,它将重写卷中的内容。例如,docker run ... -v /path/to/php/src:/srv ...
会将/path/to/php/src
内部的容器文件(文件结构)放入内部。