У меня странная проблема с подключением к моим док-контейнерам.
Это мой 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
Что я мог сделать неправильно ?? Любая помощь приветствуется.