У меня есть следующий файл 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 работает mongod --bind_ip_all, который выполняет то же самое (без необходимости редактировать какие-либо файлы конфигурации).
@ Turing85 понял. работает. Спасибо. Если вы хотите, вы можете опубликовать это как ответ, и я приму его. Еще раз спасибо!
@larsks это не позаботится о настройке репликации

На странице 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
Затем мы можем отредактировать этот файл по своему вкусу, например. установка адреса привязки и имени репликации.
Со страницы 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..."