将docker安装程序移到文件夹中
我有一个docker compose设置,类似于:将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文件保留在此文件
/
- 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属性指定它吗?