Docker compose 两个docker compose.yml位于同一网络中,其名称为compose\u PROJECT\u

Docker compose 两个docker compose.yml位于同一网络中,其名称为compose\u PROJECT\u,docker-compose,Docker Compose,我正在尝试为docker compose文件(server.yml和test.yml)使用自己的网络名称,因为test.yml只是偶尔启动,但需要访问server.yml中的一些服务。我可以使用docker compose-p NAME of PROJECT up,但不能使用compose\u PROJECT\u NAME server.yml version: '2' networks: mynetwork: driver: bridge services: app1:

我正在尝试为docker compose文件(server.yml和test.yml)使用自己的网络名称,因为test.yml只是偶尔启动,但需要访问server.yml中的一些服务。我可以使用
docker compose-p NAME of PROJECT up
,但不能使用compose\u PROJECT\u NAME

server.yml

version: '2'

networks:
  mynetwork:
    driver: bridge

services:
  app1:
    networks:
      - mynetwork
    environment:
      POSTGRES_PASSWORD: somepassword
      COMPOSE_PROJECT_NAME: serverstack

  app2:
    networks:
      - mynetwork
    environment:
      COMPOSE_PROJECT_NAME: serverstack
    depends_on:
      - app1
我的期望是,当容器启动时,我应该看到

Creating serverstackmynetwork_app_1
Creating serverstackmynetwork_app_2
网络应命名(
docker network ls

就像我做下面的事情一样,这确实有效

docker-compose -p serverstack up
然后,我可以通过使用
docker compose up
与第二个文件连接(在server.yml上使用-p选项时效果很好)

测试码

version: '2'

networks:
  testapp_network:
    external:
      name: serverstack_mynetwork

services:
  testapp:
    networks:
      - testapp_network
但是在server.yml上使用它时不使用
-p serverstack
,我将目录视为名称

Creating directoryofapp1_app1_1
Creating directoryofapp2_app2_1
因此,
COMPOSE\u PROJECT\u NAME
被省略,我也无法通过serverstack\u mynetwork连接到服务器服务


在构建映像之后,我确实添加了
COMPOSE\u项目名称:serverstack
,但我希望它无论如何都能工作。我遗漏了什么?

我通过创建包含


COMPOSE_PROJECT_NAME=myprojectname

是否需要在docker-COMPOSE.yml文件中定义的所有服务中将.env文件指定为env_文件值?否,不需要指定“env_文件”选项。这是我的docker版本:docker版本17.05.0-ce,build 89658be,docker COMPOSE版本1.15.0,build e12f3b9
Creating directoryofapp1_app1_1
Creating directoryofapp2_app2_1