如何使用Docker Compose设置Dockerfile的"当前"目录?

ddi*_*hev 6 docker

我有以下项目结构:

.
..
project/
docker/cli/Dockerfile
docker-compose.yml
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml我有以下配置:

cli:
  build: docker/cli
Run Code Online (Sandbox Code Playgroud)

在我的Dockerfile中的某个地方:

COPY . /app
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我做docker-compose build cli搬运工副本的内容docker/cli//app我的图像.这是有道理的,因为这是我的相对路径docker/cli/Dockerfile.有没有办法在我的docker-compose.yml配置中告诉路径应该是不同的(即我的项目的实际项目文件的根目录)?

joh*_*s85 14

您可以使用docker-compose文件context中的build指令属性.

version: '2'
services:
  cli:
    build: 
      context: .
      dockerfile: docker/cli/Dockerfile
Run Code Online (Sandbox Code Playgroud)

这应该按照需要工作.这context是发送到docker守护进程进行构建的内容.您还需要在project目录中使用.dockerignore文件,以确保只发送您需要的内容.