docker - Docker COPY 不复制文件
问题描述
我已经在 SO 上查看了其他一些答案,我认为它们中的任何一个都不适用于我(例如,我没有.dockerignore
)。
我有一个包含以下内容的 docker 文件:
COPY php-config/nginx.conf /etc/nginx/nginx.conf
COPY php-config/fpm-pool.conf /etc/php/8.0/fpm/pool.d/www.conf
COPY php-config/php.ini /etc/php/8.0/fpm/conf.d/99-custom.ini
COPY php-config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
构建过程(我正在使用kaniko
viagitlab
构建图像https://docs.gitlab.com/ee/ci/docker/using_kaniko.html)似乎执行了必要的操作:
INFO[0253] Taking snapshot of full filesystem...
INFO[0253] COPY php-config/nginx.conf /etc/nginx/nginx.conf
INFO[0253] Taking snapshot of files...
INFO[0253] COPY php-config/fpm-pool.conf /etc/php/8.0/fpm/pool.d/www.conf
INFO[0253] Taking snapshot of files...
INFO[0253] COPY php-config/php.ini /etc/php/8.0/fpm/conf.d/99-custom.ini
INFO[0253] Taking snapshot of files...
INFO[0253] COPY php-config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
INFO[0253] Taking snapshot of files...
但是,在成功构建后尝试docker run
容器时出现错误:
Error: could not find config file /etc/supervisor/conf.d/supervisord.conf
For help, use /usr/bin/supervisord -h
我可以确认所有四个文件都存在于源目录中。
我还可以确认所有目标目录都存在(即,我已通过 检查图像docker run --rm -it *pathtocontainer* bash
)。我的手动检查还确认只有 3/4 文件实际复制。
=======
回复:评论中的问题
INFO[0253] COPY php-config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
INFO[0253] Taking snapshot of files...
INFO[0253] RUN ls -gAlFh /etc/supervisor/conf.d
INFO[0253] cmd: /bin/sh
INFO[0253] args: [-c ls -gAlFh /etc/supervisor/conf.d]
INFO[0253] Running: [/bin/sh -c ls -gAlFh /etc/supervisor/conf.d]
total 4.0K
-rw-rw-rw- 1 root 459 Jul 5 16:13 supervisord.conf
INFO[0253] Taking snapshot of full filesystem...
INFO[0253] RUN mkdir /run/nginx && chown -R nobody:nogroup /usr/share/nginx && chown -R nobody:nogroup /run/nginx && chown -R nobody:nogroup /var/log/nginx
INFO[0253] cmd: /bin/sh
INFO[0253] args: [-c mkdir /run/nginx && chown -R nobody:nogroup /usr/share/nginx && chown -R nobody:nogroup /run/nginx && chown -R nobody:nogroup /var/log/nginx]
INFO[0253] Running: [/bin/sh -c mkdir /run/nginx && chown -R nobody:nogroup /usr/share/nginx && chown -R nobody:nogroup /run/nginx && chown -R nobody:nogroup /var/log/nginx]
INFO[0253] Taking snapshot of full filesystem...
INFO[0253] EXPOSE 8080
INFO[0253] cmd: EXPOSE
INFO[0253] Adding exposed port: 8080/tcp
INFO[0253] USER nobody
INFO[0253] cmd: USER
INFO[0253] CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
INFO[0253] Pushing image to foobar.example.com:5050/devops/debian/php:master
INFO[0259] Pushing image to foobar.example.com:5050/devops/debian/php:3259b0fd
INFO[0259] Pushing image to foobar.example.com:5050/devops/debian/php:latest
INFO[0259] Pushed image to 3 destinations
Cleaning up file based variables 00:01
Job succeeded
解决方案
推荐阅读
- c++ - 在应用程序中读取 Docker 容器状态
- python - 如何降低子集和问题的时间复杂度
- c# - Visual Studio 2019 for Mac 在 Mac OS 上运行的 C# 代码无法写入/读取本地 Azure 存储帐户模拟器
- swift - 导入 UIKit.UIViewController 而不是导入整个框架的好处
- ansible - 如何遍历字典列表及其内容列表
- angular - 销毁组件时是否应该手动关闭 EventEmitter?
- javascript - React Redux reducer 未更新状态
- python - 值查看/修改窗口
- c# - ACTIVEMQ + NMS 无法同步接收
- python-3.x - 来自 codewars 站点的 BLOCK 序列挑战(Python 3)