我有一个 docker-compose 设置,例如:
/
- sources/
- docker-compose.yml
- Dockerfile
- .dockerignore
- many more files
Dockerfile 包含指令,包括源代码的 COPY 命令。
由于所有不同的工具,包括多个 docker 设置,我想通过将所有文件移动到一个文件夹来稍微组织一下:
/
- sources/
- docker/
- many more files
或者仅将 docker-compose.yml 文件保留在此文件夹之外:
/
- sources/
- docker/
- many more files
我想这样做是因为:
目前我遇到了一些确实有意义的问题,例如:
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:
如 .dockerignore 文件的文档中所述:
在 docker CLI 将上下文发送到 docker 守护进程之前,它会在上下文的根目录中查找名为 .dockerignore 的文件
因此,您需要将 dockerignore 文件添加到上下文的根目录中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句