MongoDB включен с помощью Docker «не удалось подключиться к серверу [mongo: 27017] при первом подключении»

#node.js #mongodb #docker #docker-compose #dockerfile

#node.js #mongodb #docker #docker-compose #dockerfile

Вопрос:

 version: '3'
services:
  app:
    container_name: node-mongo
    env_file:
        "./NodeJs/.env"
    restart: always
    image: style-app
    build:
      context: ./NodeJs
      dockerfile: ./Dockerfile
    ports:
      - '8083:6017'
    external_links:
      - mongo
  mongo:
    container_name: mongo
    image: mongo
    ports:
      - '27017:27017'
  frontend:
    build:
      context: ./frontstyle
      dockerfile: ./Dockerfile
    image: "front-style-frontend"
    ports:
      - "3000:3000"
    links:
      - "app:be"
 

внутри .env

 MONGOURI=mongodb://mongo:27017/mydb
 

внутри app.js

 var mongoDB = process.env.MONGOURI;
mongoose.connect(mongoDB, { useNewUrlParser: true})
 

Я не знаю, почему это неправильно подключается, если я создаю образ для mongo, затем я запускаю docker-compose up, в нем уже говорится, что имя "/mongo" контейнера уже используется контейнером.

Пожалуйста, руководство

Комментарии:

1. Я думаю, что MONGOURI должен быть mongodb: // mongo: 27017/mydb

2. Удаление явного container_name: может помочь избежать конфликтов; вам также не нужно создавать образ или контейнер MongoDB отдельно от этой настройки компоновки.

3. Я думаю, что у меня есть такая же строка, не так ли?

4. @DavidMaze это полезно

5. здесь mongo — это имя изображения, а не имя контейнера.