外部链接在Docker Compose中不起作用

问题描述 投票:0回答:2

我有两个docker-compose.yml文件。在第一个,我运行一个mongodb实例:

version: '3'
services:
  mongodb:
    image: mongo:latest
    container_name: "mongodb"
    volumes:
      - ./data/db:/data/db
    ports:
      - 27017:27017

在第二个,我运行我的Web应用程序,我想将其与mongodb容器链接:

version: '3'
services:
  webapp:
    build:
      context: .
    external_links:
      - mongodb
    ports:
      - 8080:8080

但是,当我运行我的webapp时,我收到连接错误。我正在连接到这个URI:

const DB_URI = 'mongodb://mongodb:27017/mydb';

但我得到了MongoNetworkError。我错过了什么?

node.js mongodb docker mongoose docker-compose
2个回答
1
投票

我建议你在同一个docker-compose文件中使用这两个服务,并用external_links替换links

version: '3'
services:
  mongodb:
    image: mongo:latest
    container_name: "mongodb"
    volumes:
      - ./data/db:/data/db
    ports:
      - 27017:27017
  webapp:
    build:
      context: .
    links:
      - mongodb
    depends_on:
      - mongodb
    ports:
      - 8080:8080

在启动webapp之前,我怎样才能确保mongodb启动并运行? AFAIK,links将负责处理这种情况。 要么 你可以使用depends_on


0
投票

解决了。主机无法访问,因为它们位于不同的网络中。创建网络(https://docs.docker.com/compose/networking/)并在该网络中运行这两种服务解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.