MongoDB Docker Compose - haiquang9994/dev_env GitHub Wiki
keyfile
openssl rand -base64 756 > keyfile &&
chmod 0600 keyfile &&
chown 999:999 keyfile
docker-compose.yml
vim docker-compose.yml
services:
mongodb:
image: mongo:7.0
container_name: mongodb
restart: always
ports:
- "27017:27017"
command: ["--quiet", "--replSet", "rs0", "--bind_ip_all", "--port", "27017", "--keyFile", "/etc/mongodb.key"]
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 1234
healthcheck:
test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'localhost:27017'}]}) }" | mongosh -u root -p 1234 --port 27017 --quiet
interval: 5s
timeout: 30s
start_period: 0s
retries: 30
volumes:
- ./data:/data/db
- ./keyfile:/etc/mongodb.key
docker compose up -d
connect from localhost
get server ip
ip -4 route get 1.1.1.1 | awk '{print $7}'
use mongodb compass, connect mongodb via ssh
cfg = rs.conf()
cfg.members[0].host = 'xxx.xxx.xxx.xxx:27017'
rs.reconfig(cfg)
or
rs.reconfig(cfg, { force: true })