Не получается подключиться к mongo в docker-compose
Пытаюсь подключиться к контейнеру mongo через еще один контейнер тем самым заставив код ждать пока запустится, но этого не происходит (сам код отдельно работает, т.е. запустить mongosettings после того как главный контейнер запустится)
Фото docker-compose
version: "3.8"
services:
mongo:
image : mongo:latest
ports:
- 27017:27017
container_name: mongo
restart: always
# volumes:
# - ./mongo_db_data_container:/data/db
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: adminimda
mongosettings:
image : mongo:latest
container_name: mongoClientTemp
links:
- "mongo:mongo"
depends_on:
- mongo
command: sh -c 'mongo --host mongo -u admin -p adminimda --authenticationDatabase admin --eval "db.getSiblingDB('ShareLinker').createUser({user:'Sr233', pwd:'greatPassword_QWErty', roles:[{role:'readWrite',db:'ShareLinker'}]});"'
Сам DockerFile
FROM mongo:latest
VOLUME [ "/data/db" ]
ENTRYPOINT "init.sh"
EXPOSE 27017
Лог сервиса mongosettings:
MongoDB shell version v5.0.4
connecting to: mongodb://mongo:27017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodb
Error: couldn't connect to server mongo:27017, connection attempt failed: SocketException: Error connecting to mongo:27017 (172.21.0.2:27017) :: caused
by :: Connection refused :
connect@src/mongo/shell/mongo.js:372:17
@(connect):2:6
exception: connect failed
exiting with code 1
Пытался использовать дополнительно команду bash sleep 'sometime' но выкидывает ошибку
usr/bin/sleep: /usr/bin/sleep: cannot execute binary file
Как мне решить данную проблему если команда не ожидает полного запуска монго?
Ответы (1 шт):
потому что монго еще не успела стартануть, а другой контейнер пытается подключиться. можно добавить ожидание перед подключением command: sh -c 'sleep 15 && mongo --host mongo – ..., либо сделать грамотно и ожидать когда конкретно можно будет подключиться