79 lines
2.3 KiB
YAML
79 lines
2.3 KiB
YAML
services:
|
|
mongodb:
|
|
image: mongo:6.0
|
|
container_name: mongodb
|
|
hostname: mongodb
|
|
restart: always
|
|
environment:
|
|
- MONGO_INITDB_ROOT_USERNAME=${MONGO_ROOT_USERNAME:-admin}
|
|
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD:-password}
|
|
volumes:
|
|
- mongodb_data:/data/db
|
|
- mongodb_config:/data/configdb
|
|
- ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
|
|
- ./keyfile:/data/keyfile:ro # Add this for replica set auth
|
|
ports:
|
|
- "27017:27017" # Expose MongoDB port to external machines
|
|
# Use a simpler configuration without replica set for now
|
|
command: ["--auth", "--bind_ip_all"]
|
|
healthcheck:
|
|
test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/admin --quiet
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 40s
|
|
networks:
|
|
- mongo_network
|
|
ulimits:
|
|
nofile:
|
|
soft: 64000
|
|
hard: 64000
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "200m"
|
|
max-file: "10"
|
|
|
|
mongo-express:
|
|
image: mongo-express:latest
|
|
container_name: mongo-express
|
|
hostname: mongo-express
|
|
restart: always
|
|
volumes:
|
|
- ./mongo-express-config.js:/node_modules/mongo-express/config.js:ro
|
|
environment:
|
|
- ME_CONFIG_MONGODB_ADMINUSERNAME=${MONGO_ROOT_USERNAME:-admin}
|
|
- ME_CONFIG_MONGODB_ADMINPASSWORD=${MONGO_ROOT_PASSWORD:-password}
|
|
- ME_CONFIG_MONGODB_SERVER=mongodb # This should match container_name of MongoDB
|
|
- ME_CONFIG_MONGODB_AUTH_DATABASE=admin
|
|
# Fix connection string format
|
|
- ME_CONFIG_MONGODB_URL=mongodb://${MONGO_ROOT_USERNAME:-admin}:${MONGO_ROOT_PASSWORD:-password}@mongodb:27017/?authSource=admin
|
|
# Explicitly disable basic auth
|
|
- ME_CONFIG_BASICAUTH_USERNAME=
|
|
- ME_CONFIG_BASICAUTH_PASSWORD=
|
|
ports:
|
|
- "8081:8081" # Expose Mongo Express web interface to external machines
|
|
depends_on:
|
|
- mongodb
|
|
networks:
|
|
- mongo_network
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "5"
|
|
|
|
networks:
|
|
mongo_network:
|
|
driver: bridge
|
|
# Adding explicit configuration to ensure proper DNS resolution
|
|
ipam:
|
|
config:
|
|
- subnet: 172.20.0.0/16
|
|
|
|
volumes:
|
|
mongodb_data:
|
|
driver: local
|
|
mongodb_config:
|
|
driver: local
|