Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将docker安装程序移到文件夹中_Docker_Docker Compose - Fatal编程技术网

将docker安装程序移到文件夹中

将docker安装程序移到文件夹中,docker,docker-compose,Docker,Docker Compose,我有一个docker compose设置,类似于: / - sources/ - docker-compose.yml - Dockerfile - .dockerignore - many more files Dockerfile包含指令,包括源的复制命令 由于所有不同的工具,包括多个docker设置,我想通过将所有文件移动到一个文件夹来组织它: / - sources/ - docker/ - many more files 或者仅将docker-compose.yml文件保留在此文件

我有一个docker compose设置,类似于:

/
- sources/
- docker-compose.yml
- Dockerfile
- .dockerignore
- many more files
Dockerfile包含指令,包括源的复制命令

由于所有不同的工具,包括多个docker设置,我想通过将所有文件移动到一个文件夹来组织它:

/
- sources/
- docker/
- many more files
或者仅将docker-compose.yml文件保留在此文件夹之外:

/
- sources/
- docker/
- many more files
我想这样做是因为:

  • 它会清理项目文件夹
  • 我目前在项目文件夹中有多个docker设置,将它们移动到单独的文件夹中可以实现更清晰和/或精确的设置(例如,多个DockerRigNore文件)
目前,我遇到了一些有意义的问题,例如:

COPY failed: Forbidden path outside the build context: ../sources/

是否可以实现此设置?谢谢

在Dockerfile中,您无法访问构建上下文之外的文件。在您的案例中,构建上下文是包含Dockerfile的目录

您可以在composefile中更改构建上下文。 下面是一个示例,其中composefile位于根目录下,
Dockerfile
位于
docker
文件夹下:

version: '3'

services:
  test:
    build:
      context: .
      dockerfile: docker/Dockerfile
在这种情况下,在
Dockerfile
中,应该相对于上下文设置文件路径

COPY sources sources
对于dockerignore

如.dockrignore文件的文档中所述:

在docker CLI将上下文发送到docker守护进程之前,它会在上下文的根目录中查找名为.dockergnore的文件


因此,您需要将DockerInore文件添加到上下文的根目录中。

在Dockerfile中,您无法访问构建上下文之外的文件。在您的案例中,构建上下文是包含Dockerfile的目录

COPY sources sources
您可以在composefile中更改构建上下文。 下面是一个示例,其中composefile位于根目录下,
Dockerfile
位于
docker
文件夹下:

version: '3'

services:
  test:
    build:
      context: .
      dockerfile: docker/Dockerfile
在这种情况下,在
Dockerfile
中,应该相对于上下文设置文件路径

COPY sources sources
对于dockerignore

如.dockrignore文件的文档中所述:

在docker CLI将上下文发送到docker守护进程之前,它会在上下文的根目录中查找名为.dockergnore的文件


因此,您需要将DockerInore文件添加到上下文的根目录中。

您不能在Dockerfile中使用该文件,但是您应该能够使用.env文件并从那里将其拉入

COPY sources sources

您可以尝试以下方法:

环境署署长
SOURCE\u PATH=../sources/

Dockerfile
COPY${SOURCE\u PATH}/myfile/some/destination

您不能在Dockerfile中使用它,但是您应该能够使用.env文件并从那里将其拉入

您可以尝试以下方法:

环境署署长
SOURCE\u PATH=../sources/

Dockerfile
COPY${SOURCE\u PATH}/myfile/some/destination

COPY正在工作。您能否详细说明我是否可以在docker文件夹中添加一个.dockrignore,或者在上下文(项目文件夹)中查找一个?或者我可以使用某个compose属性指定它吗?复制正在工作。您能否详细说明我是否可以在docker文件夹中添加一个.dockrignore,或者在上下文(项目文件夹)中查找一个?或者我可以使用某些compose属性指定它吗?