[英]Docker: ERROR: Job failed: command terminated with exit code 1
我正在尝试将文件夹中的所有文件复制到正在构建的 docker 映像中的文件夹中。 这是我的 gitlab 管道在尝试构建 docker 映像时出现的错误。
Status: Downloaded newer image for nginx:1.18.0-alpine
---> 8c1bfa967ebf
Step 2/3 : COPY conf/default.conf /etc/nginx/conf.d/default.conf
COPY failed: Forbidden path outside the build context: ../../src/ ()
---> ffbb72db6c26
Step 3/3 : COPY ../../src/ /var/www/html/public
ERROR: Job failed: command terminated with exit code 1
我的 gitlab-ci.yml 文件:
image: docker:stable
services:
- docker:18-dind
variables:
DOCKER_HOST: tcp://localhost:2375
php:
before_script:
- docker login gitlab.domain.com:5050 -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD}
script:
- docker build -t gitlab.domain.com:5050/project/php:7.2-fpm ./php-fpm
- docker push gitlab.domain.com:5050/project/php:7.2-fpm
nginx:
before_script:
- docker login gitlab.domain.com:5050 -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD}
script:
- docker build -t gitlab.domain.com:5050/project/nginx:stable ./nginx
- docker push gitlab.domain.com:5050/project/nginx:stable
COPY
从您的 Docker 客户端的当前目录添加文件。
来自https://docs.docker.com/engine/reference/builder/
COPY obeys the following rules:
The <src> path must be inside the context of the build; you cannot COPY ../something /something,
because the first step of a docker build is to send the context directory (and subdirectories)
to the docker daemon.
If <src> is a directory, the entire contents of the directory are copied,
including filesystem metadata.
所以请重新构建 docker 项目结构并复制当前目录结构内的内容。
直接来自docker 文档
路径必须在构建的上下文中; 您不能 COPY../something /something,因为 docker 构建的第一步是将上下文目录(和子目录)发送到 docker 守护程序。
作为替代方案,您可以像这样更新目录结构:
- code
- nginx
- php-fpm
- src
- Dockerfile
然后更新 Dockerfile 中COPY
命令的源路径。
更新了 Dockerfile:
FROM
RUN
COPY php-fpm/php-fpm.d/entrypoint.sh /usr/local/bin/
COPY src/ /var/www/html/public/src/
WORKDIR
CMD
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.