我在单独的文件夹中有两个docker-compose.yml
个文件。
我想在同一个命令中运行其中两个,以便两者的服务能够相互通信。
但是,当我转到最低共同路径祖先并尝试使用这两个文件运行docker-compose
时,会发生以下情况:
$ docker-compose -f ./api-folder/docker-compose.yml -f ./front-folder/docker-compose.yml up -d
ERROR: build path /projects/front-folder/api either does not exist, is not accessible, or is not a valid URL.
$ docker-compose -f ./front-folder/docker-compose.yml -f ./api-folder/docker-compose.yml up -d
ERROR: build path /projects/api-folder/app either does not exist, is not accessible, or is not a valid URL.
以下是两个docker-compose.yml
文件:
/projects/front-folder/docker-compose.yml
version: '2'
services:
app:
restart: always
build: ./app
environment:
NODE_ENV: 'dev'
ports:
- "4400:4400"
volumes:
- ./app:/usr/src/app
nginx:
restart: always
build: ./nginx
volumes:
- ./logs:/usr/local/var/log/nginx
links:
- app
ports:
- "80:80"
/projects/api-folder/docker-compose.yml
version: '2'
services:
api:
restart: always
build: ./api
expose:
- "4600"
volumes:
- ./api:/usr/src/app
- ./logs:/logs
nginx:
restart: always
build: ./nginx
volumes:
- ./logs:/usr/local/var/log/nginx
links:
- api
ports:
- "81:80"
networks:
- hackerz
目录结构:
- /projects
- /front-folder
- /app
Dockerfile
- /nginx
Dockerfile
docker-compose.yml
- /api-folder
- /api
Dockerfile
- /nginx
Dockerfile
docker-compose.yml
我猜测问题出在build
路径上,但我不明白的是:
build: ./api
或其他方面搜索/front-folder
?答案 0 :(得分:0)
这不是作曲的方式(按设计)。请在此处查看我的评论:https://github.com/docker/compose/issues/3530#issuecomment-222490501。
答案 1 :(得分:0)
DOCKERFILE 备用Dockerfile。
Compose使用一个替代文件进行构建。还必须指定一个构建路径。
service3:
build:
context: .
dockerfile: Dockerfile-alternate
docker撰写提供自定义文件的构建