приложение docker-compose node не может связаться с mongo - PullRequest
1 голос
/ 07 октября 2019

У меня странная проблема с подключением к моим док-контейнерам.

Это мой compose.yaml

version: "3.3"
services:
  node-app:
    image: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}"
    container_name: "node-app"
    depends_on:
      - mongo
    env_file: ./config/.env
    ports:
      - 43332:43332
    networks:
      - app-network
    environment:
      WAIT_HOSTS: mongo:27017
  mongo:
    container_name: "app-mongo"
    image: mongo:4.0
    volumes:
      - /data/db:/data/db
    ports:
      - 27017:27017
    networks:
      - app-network
networks:
  app-network:

Поэтому я пытаюсь настроить конвейер CI / CDи первое, что он делает, - запускает тесты при нажатии на код. Конвейер запускает эту команду docker-compose run --rm app-node npm run test.

Однако он продолжает получать следующую ошибку.

MongoNetworkError: failed to connect to server [mongo:27017] on first connect [MongoNetworkError: connection 0 to mongo:27017 timed out]

Мое приложение подключается к Монго, как это

        mongoose.connect('mongodb://mongo:27017', { useNewUrlParser: true });
        mongoose.Promise = global.Promise;
        mongoose.connection.on('error', error => {
            logMe(error);
            process.exit(1);
        });

Странно то, что я вижу, что сам контейнер приложения может взаимодействовать с мононой по его имени службы ('mongo') на уровне операционной системы.

Так что, если я запущу это - docker-compose run --rm app-node ping -c 1 mongo, пинг будет успешным.

Он работает в следующей среде

$ docker -v
Docker version 18.09.7, build 2d0083d

$ docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

Что я мог сделать неправильно ?? Любая помощь приветствуется.

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