Docker 由两个文件组成

Jiv*_*van 5 docker docker-compose

我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.
Run Code Online (Sandbox Code Playgroud)

这是两个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"
Run Code Online (Sandbox Code Playgroud)

/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
Run Code Online (Sandbox Code Playgroud)

和目录结构:

- /projects
    - /front-folder
        - /app
            Dockerfile
        - /nginx
            Dockerfile
        docker-compose.yml
    - /api-folder
        - /api
            Dockerfile
        - /nginx
            Dockerfile
        docker-compose.yml
Run Code Online (Sandbox Code Playgroud)

我猜问题出在build路径上,但我不明白的是:

  • 为什么泊坞窗坚持搜索build: ./api中/front-folder或周围的其他方法?
  • 如何规避这个问题并能够同时运行两个文件?

joh*_*s85 0

这不是 compose 的工作方式(按设计)。请参阅我的评论:https: //github.com/docker/compose/issues/3530#issuecomment-222490501。