Я пытаюсь заставить мой контейнер mongodb прослушивать мой API, пытающийся подключиться, но он не запускается. Как я понял, использование bindIpAll и установка его в true не идеальны, поэтому я создал сеть в своем файле compose, чтобы получить некоторую связь между ними.
Вот моя конфигурация в файле компоновки Docker:
version: '3'
networks:
backend:
services:
unit:
image: nginx/unit:1.8.0-full
networks:
backend:
database:
image: mongo:4.0-xenial
entrypoint: mongod --config /etc/mongod.conf
ports:
- 27000:27017
depends_on:
- unit
volumes:
- ./db/config/mongod.conf:/etc/mongod.conf
- mongoData:/data/db/
- mongoLog:/var/log/mongodb/
- mongoPID:/var/run/mongodb/
networks:
backend:
Я включил сервис единицы для понимания следующего блока. В следующем блоке я попытался установить псевдонимы для сетей, а также с использованием фактического имени сети, и я не получил решение, которое я также пытался использовать с использованием имени службы. Это сетевой раздел моего конфига Монго.
net:
port: 27017
bindIp: unit #backend network defined in the docker-compose file
Как я уже говорил, служба не запускается, Монго выдает мне следующее сообщение:
Failed to set up listener: SocketException: Cannot assign requested address
Если я использую bindIpAll в конфиге, кажется, что все работает нормально, но, как я уже говорил, у меня сложилось впечатление (возможно, неправильно), что это неправильный подход.
Вот весь мой файл mongo.conf:
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /data/db
journal:
enabled: true
# how the process runs
processManagement:
fork: false # run in the background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
#bindIpAll: true
bindIp: unit #backend network defined in the docker-compose file
security:
authorization: "enabled"
setParameter:
authenticationMechanisms: "SCRAM-SHA-256"