Files
compose-anything/src/mongodb-replicaset/docker-compose.yaml
2025-09-24 00:06:13 +08:00

57 lines
1.2 KiB
YAML

x-default: &default
restart: unless-stopped
volumes:
- &localtime /etc/localtime:/etc/localtime:ro
- &timezone /etc/timezone:/etc/timezone:ro
logging:
driver: json-file
options:
max-size: 100m
x-mongo: &mongo
<<: *default
image: mongo:${MONGO_VERSION:-8.0.13}
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME:-root}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD:-password}
MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE:-admin}
command:
- mongod
- --replSet
- ${MONGO_REPLICA_SET_NAME:-rs0}
- --keyFile
- /secrets/rs0.key
volumes:
- *localtime
- *timezone
- ./secrets/rs0.key:/secrets/rs0.key
entrypoint:
- bash
- -c
- |
chmod 400 /secrets/rs0.key
chown 999:999 /secrets/rs0.key
exec docker-entrypoint.sh $$@
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.25'
memory: 256M
services:
mongo1:
<<: *mongo
ports:
- "${MONGO_PORT_OVERRIDE_1:-27017}:27017"
mongo2:
<<: *mongo
ports:
- "${MONGO_PORT_OVERRIDE_2:-27018}:27017"
mongo3:
<<: *mongo
ports:
- "${MONGO_PORT_OVERRIDE_3:-27019}:27017"