我必须通过Dockerfile覆盖文件。特别是在使用Apache和PHP的Ubuntu容器上,我必须覆盖php5-cgi.conf文件。 我尝试使用以下命令:
COPY php5-cgi.conf /etc/apache2/conf-enabled/php5-cgi.conf
但我收到了错误:File already exists
我也试过使用以下命令
RUN cp -f php5-cgi.conf /etc/apache2/conf-enabled/
但是当容器运行时不会复制文件,对此有任何建议吗?
答案 0 :(得分:19)
从目标中删除文件名:
COPY php5-cgi.conf /etc/apache2/conf-enabled/
目标是 绝对路径 (不是文件名),或者是相对于工作目录的路径,源将在目标容器中复制到该路径中。< / p>
答案 1 :(得分:6)
我刚刚测试了以下docker文件,没有问题。
from debian:jessie
COPY debian_version /etc/debian_version
正如PolarisUser在评论中所述,您需要将debian_version
放在与dockerfile
相同的文件夹中,或使用absolute path
。
另一种方法是在运行容器时挂载文件。
docker run -d -v php5-cgi.conf:/etc/apache2/conf-enabled/php5-cgi.conf --name your_container_name <imagename:tag> <startup command>
答案 2 :(得分:3)
docker cp "yourfilename" "containername":/destination
以下是一个工作示例:
docker cp config.json bigdataapp:/app/src/bigdatapp/wwwroot/assets/config/config.json