Docker:错误:作业失败:命令终止,退出代码为1
我正在尝试将文件夹中的所有文件复制到docker映像中正在生成的文件夹中。下面是我的gitlab管道在尝试构建docker映像时出现的错误Docker:错误:作业失败:命令终止,退出代码为1,docker,gitlab,dockerfile,Docker,Gitlab,Dockerfile,我正在尝试将文件夹中的所有文件复制到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 th
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客户端的当前目录添加文件
从
COPY遵循以下规则:
路径必须在构建的上下文中;你不能复制…/某物/某物,
因为docker构建的第一步是发送上下文目录(和子目录)
到docker守护进程。
如果是目录,则复制目录的全部内容,
包括文件系统元数据。
因此,请重新构造docker项目结构,并将内容复制到当前目录结构中。
COPY
从docker客户端的当前目录中添加文件
从
COPY遵循以下规则:
路径必须在构建的上下文中;你不能复制…/某物/某物,
因为docker构建的第一步是发送上下文目录(和子目录)
到docker守护进程。
如果是目录,则复制目录的全部内容,
包括文件系统元数据。
因此,请重新构造docker项目结构,并将内容复制到当前目录结构中。直接从
路径必须在构建的上下文中;您不能复制../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
直接从
路径必须在构建的上下文中;您不能复制../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
似乎您到src文件夹的路径没有按您所希望的那样工作,您可以这样尝试吗?
COPY../src//var/www/html/public
?或者您可以添加一个额外的层作为RUN ls..
来查看父目录的内容。似乎您到src文件夹的路径没有按您所希望的那样工作,您可以这样尝试COPY../src//var/www/html/public
?或者您可以添加一个额外的层作为RUN ls..
,以查看父目录的内容。感谢您的帮助,我更新了我的问题以提供gitlab ci文件。是否可以从此处设置上下文?感谢您的帮助,我更新了我的问题以提供gitlab ci文件是否可以从此处设置上下文?感谢帮助,我更新了我的问题以提供gitlab ci文件是否可以从此处设置上下文?感谢帮助,我更新了我的问题以提供gitlab ci文件是否可以从此处设置上下文?