Не получается подключиться к 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 шт):

Автор решения: Senior Pomidor

потому что монго еще не успела стартануть, а другой контейнер пытается подключиться. можно добавить ожидание перед подключением command: sh -c 'sleep 15 && mongo --host mongo – ..., либо сделать грамотно и ожидать когда конкретно можно будет подключиться

→ Ссылка