我的项目结构如下:
.
..
project/
docker/cli/Dockerfile
docker-compose.yml
在 docker-compose.yml
我有以下配置:
cli:
build: docker/cli
在我的 Dockerfile 中某处:
COPY . /app
现在的问题是,当我执行 docker-compose build cli
时,docker 会在 /app
中复制 docker/cli/
的内容我的形象。这是有道理的,因为那是我的 docker/cli/Dockerfile
的相对路径。但是有没有办法在我的 docker-compose.yml
配置中告诉路径应该不同(即实际项目文件所在的项目的根目录)?
最佳答案
您可以在 docker-compose 文件中使用 build
指令的 context
属性。
version: '2'
services:
cli:
build:
context: .
dockerfile: docker/cli/Dockerfile
这应该可以正常工作。 context
是发送到 docker 守护进程进行构建的内容。不过,您还需要在 project
目录中有一个 .dockerignore 文件,以确保只发送您需要的内容。
关于docker - 如何使用 Docker Compose 设置 Dockerfile 的 "current"目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37087676/