Docker compose устанавливает mongodb bindIp на 0.0.0,0 в /etc/mongod.conf

У меня есть следующий файл mongo-compose:

version: '3.8'

services:
  mongo3:
    container_name: mongo3
    image: mongo:4.4

    volumes:
      - ~/mongos/data3:/data/db
    networks:
      - mongo-network
    ports:
      - 27017:27017
    restart: always        
    command: --replSet "rs1" --bind_ip 0.0.0.0

networks:
  mongo-network:
    driver: bridge

Моя цель - отредактировать файл /etc/mongod.conf.orig в контейнере таким образом, чтобы:

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  <----- I wish this to be 0.0.0.0


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:

#operationProfiling:

#replication:  <---------------- should be replication: replSetName: "rs1"

#sharding:

## Enterprise-Only Options:

#auditLog:

к сожалению, команда в docker-compose не применяет эти изменения. Я также пробовал:

entrypoint: [ "/usr/bin/mongod", "--bind_ip_all","0.0.0.0", "--replSet", "rs1" ]

но это не позволяет контейнеру работать.

Со страницы mongo dockerhub (dockerhub.com): «... Например, /my/custom/mongod.conf — это путь к пользовательскому файлу конфигурации. Затем запустите контейнер MongoDB следующим образом: $ docker run --name some-mongo -v /my/custom:/etc/mongo -d mongo --config /etc/mongo/mongod.conf ..."

Turing85 17.10.2022 17:45

... хотя вам не нужно вносить это изменение; официальный образ mongo работает mongod --bind_ip_all, который выполняет то же самое (без необходимости редактировать какие-либо файлы конфигурации).

larsks 17.10.2022 17:51

@ Turing85 понял. работает. Спасибо. Если вы хотите, вы можете опубликовать это как ответ, и я приму его. Еще раз спасибо!

ProcolHarum 17.10.2022 18:05

@larsks это не позаботится о настройке репликации

Turing85 17.10.2022 18:20
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
4
246
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На странице dockerhub.com для монго указано:

...

Например, /my/custom/mongod.conf — это путь к пользовательскому файлу конфигурации. Затем запустите контейнер MongoDB следующим образом:

$ docker run --name some-mongo -v /my/custom:/etc/mongo -d mongo --config /etc/mongo/mongod.conf

...

В переводе на docker-compose.yml это будет означать, что мы пишем что-то вроде:

version: '3.8'

services:
  mongo3:
    container_name: mongo3
    image: mongo:4.4

    volumes:
      - ~/mongos/data3:/data/db
      - ./mongo/config:/etc/mongo
    networks:
      - mongo-network
    ports:
      - 27017:27017
    restart: always        
    command: --config /etc/mongo/mongod.conf

networks:
  mongo-network:
    driver: bridge

Затем мы создадим папку mongo/config в каталоге, содержащем docker-compose.yml, а внутри папки создадим mongod.conf:

mkdir -p mongo/config && touch mongo/config/mongod.conf

Затем мы можем отредактировать этот файл по своему вкусу, например. установка адреса привязки и имени репликации.

Другие вопросы по теме