version: '3.8' services: mongodb: image: mongo:6.0 container_name: normogen-mongodb restart: unless-stopped ports: - "27017:27017" environment: MONGO_INITDB_DATABASE: normogen volumes: - mongodb_data:/data/db - mongodb_config:/data/configdb networks: - normogen-network healthcheck: test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] interval: 10s timeout: 5s retries: 5 start_period: 10s backend: build: context: .. dockerfile: docker/Dockerfile.improved image: normogen-backend:latest container_name: normogen-backend restart: unless-stopped ports: - "8001:8000" environment: RUST_LOG: ${RUST_LOG:-info} MONGODB_URI: mongodb://mongodb:27017 MONGODB_DATABASE: ${MONGODB_DATABASE:-normogen} JWT_SECRET: ${JWT_SECRET} SERVER_PORT: 8000 SERVER_HOST: 0.0.0.0 depends_on: mongodb: condition: service_healthy networks: - normogen-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s deploy: resources: limits: cpus: '1.0' memory: 512M reservations: cpus: '0.25' memory: 128M volumes: mongodb_data: driver: local mongodb_config: driver: local networks: normogen-network: driver: bridge