services: mongo: image: mongo container_name: mongo restart: unless-stopped # ---------- credentials ---------- environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_ROOT_USER} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ROOT_PASSWORD} # ---------- persistence ---------- volumes: # primary data store - mongo_data:/data/db # (optional) replica‑set metadata; small but useful to persist - mongo_cfg:/data/configdb # seed scripts for first‑run init (create users, seed collections, etc.) - ./mongo/init:/docker-entrypoint-initdb.d:ro # ---------- networking ---------- # Only published when the 'dev' profile is active ports: - "${MONGO_PORT}:27017" # ---------- basic health check ---------- healthcheck: test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping')"] interval: 30s timeout: 10s retries: 5 # ---------- named volumes ---------- volumes: mongo_data: mongo_cfg: