Невозможно подключить MongoDB Container к приложению NodeJs в составе файла - PullRequest
0 голосов
/ 21 марта 2020

вот мой docker-compose.yml файл:

version: "3.7"

services:
  dev:
    image: "node_rest_dev_img"
    build:
      context: .
    container_name: node_rest_dev
    working_dir: /usr/src/app
    volumes:
      - .:/usr/src/app
    ports:
      - 3010:3010
    restart: always
    depends_on:
      - database_mongoDB
    networks:
      - node_rest_network

  database_mongoDB:
    image: mongo
    container_name: node_rest_mongoDB
    environment:
      - MONGO_INITDB_ROOT_USERNAME=mongo_admin
      - MONGO_INITDB_ROOT_PASSWORD=secret
    ports:
      - 27017:27017
    volumes:
      - ./__MONGO_DATA__:/data/db
    networks:
      - node_rest_network

networks:
  node_rest_network:
    driver: bridge

проблема в том, что у меня есть сеть с именем node_rest_network, и эти два контейнера предполагают общаться друг с другом только внутри этой сети, вот мой Строка подключения в моем express приложении

import mongoose from "mongoose";
import AppConfig from "./AppConfig";

const connect = (ops = {}) => {
  return mongoose.connect(
    "mongodb://mongo_admin:secret@database_mongoDB/rest_standard_api",
    {
      ...ops,
      useNewUrlParser: true,
      useUnifiedTopology: true
    }
  );
};

export default connect;

но, к сожалению, когда я запускаю docker-compose up, это не работает, я всегда получаю эту ошибку в моем терминале:

Cannot connect to Mongo DB MongooseError [MongooseServerSelectionError]: connect ECONNREFUSED 127.0.0.1:27017
node_rest_dev       |     at new MongooseServerSelectionError (/usr/src/app/node_modules/mongoose/lib/error/serverSelection.js:22:11)
node_rest_dev       |     at NativeConnection.Connection.openUri (/usr/src/app/node_modules/mongoose/lib/connection.js:823:32)
node_rest_dev       |     at Mongoose.connect (/usr/src/app/node_modules/mongoose/lib/index.js:333:15)
node_rest_dev       |     at connect (/usr/src/app/built/utils/mongoConnect.js:1:1064)
node_rest_dev       |     at /usr/src/app/built/app.js:8:373
node_rest_dev       |     at Object.<anonymous> (/usr/src/app/built/app.js:8:562)
node_rest_dev       |     at Module._compile (internal/modules/cjs/loader.js:1147:30)
node_rest_dev       |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
node_rest_dev       |     at Module.load (internal/modules/cjs/loader.js:996:32)
node_rest_dev       |     at Function.Module._load (internal/modules/cjs/loader.js:896:14)
node_rest_dev       |     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
node_rest_dev       |     at internal/main/run_main_module.js:17:47 {
node_rest_dev       |   message: 'connect ECONNREFUSED 127.0.0.1:27017',
node_rest_dev       |   name: 'MongooseServerSelectionError',
node_rest_dev       |   reason: TopologyDescription {
node_rest_dev       |     type: 'Single',
node_rest_dev       |     setName: null,
node_rest_dev       |     maxSetVersion: null,
node_rest_dev       |     maxElectionId: null,
node_rest_dev       |     servers: Map(1) { 'localhost:27017' => [ServerDescription] },
node_rest_dev       |     stale: false,
node_rest_dev       |     compatible: true,
node_rest_dev       |     compatibilityError: null,
node_rest_dev       |     logicalSessionTimeoutMinutes: null,
node_rest_dev       |     heartbeatFrequencyMS: 10000,
node_rest_dev       |     localThresholdMS: 15,
node_rest_dev       |     commonWireVersion: null
node_rest_dev       |   },
node_rest_dev       |   [Symbol(mongoErrorContextSymbol)]: {}
node_rest_dev       | }

может кто-нибудь, пожалуйста, намекните мне, что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...