Dockerfile覆盖容器

时间:2018-02-17 18:21:54

标签: docker

我知道这是草率的,但我是Docker的新手,只是试图抓住它。我正在拉图片FROM wordpress:4.9.2-php7.2-apache 我然后尝试从我的Dockerfile中覆盖deflate.conf文件。我正在使用的命令如下。

ADD /deflate.conf ../../../etc/apache2/mods-available/

使用此命令可以正确构建映像,但是一旦运行它,容器会立即失败吗?

当我注释掉ADD行,build/run图像时,容器运行正常。所以我尝试从命令行复制命令,如下所示:

docker cp deflate.conf <name>:../../../etc/apache2/mods-available/deflate.conf

使用此命令一切正常,我得到了理想的结果。

我不知道为什么我的Dockerfile不能正常工作,但命令行呢。 任何帮助将非常感谢。

2 个答案:

答案 0 :(得分:0)

我认为您可以使用命令行获得相同的结果:

COPY /deflate.conf ../../../etc/apache2/mods-available/deflate.conf
你的Dockerfile中的

答案 1 :(得分:0)

为什么不使用绝对路径的COPY或ADD。格式应该是:

,而不是使用environments: development: server: contextPath: /projectName
../../../etc/apache2/mods-available/deflate.conf

您也可以使用Docker卷。在COPY /deflate.conf /etc/apache2/mods-available/deflate.conf 期间忽略COPY,然后使用docker build command,包括run选项:

-v

这也应该可以解决问题。请注意,当apache服务启动时,默认情况下不会加载$ docker run -v /deflate.conf:/etc/apache2/mods-available/deflate.conf -d -p 80:80 test 上的模块,应将活动模块复制到/etc/apache2/mods-available/