Docker:错误:作业失败:命令终止,退出代码为1

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

我正在尝试将文件夹中的所有文件复制到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客户端的当前目录添加文件

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文件是否可以从此处设置上下文?