与COMPOSE_PROJECT_NAME在同一网络中的两个docker-compose .yml

时间:2017-03-20 10:41:39

标签: docker-compose

我正在尝试为docker-compose文件(server.yml和test.yml)创建自己的网络名称,因为test.yml只是不时启动,但需要访问服务器中的某些服务。阳明海运。我可以使用docker-compose -p nameofproject up,但不能使用COMPOSE_PROJECT_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

serverstack_mynetwork

就像我执行以下操作一样,实际上有效

docker-compose -p serverstack up

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

testing.yml

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_PROJECT_NAME,我也无法通过serverstack_mynetwork

连接到服务器服务

我在构建图像后添加了COMPOSE_PROJECT_NAME: serverstack,但我希望它无论如何都能正常工作。我错过了什么?

1 个答案:

答案 0 :(得分:1)

我通过创建包含

".env"文件解决了这个问题

COMPOSE_PROJECT_NAME=myprojectname