Docker compose 两个docker compose.yml位于同一网络中,其名称为compose\u PROJECT\u
我正在尝试为docker compose文件(server.yml和test.yml)使用自己的网络名称,因为test.yml只是偶尔启动,但需要访问server.yml中的一些服务。我可以使用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-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