version: "3.8" services: mongodb: image: mongo:8.0 container_name: notely-mongodb environment: MONGO_INITDB_DATABASE: notely MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: password ports: - "27017:27017" volumes: - mongodb_data:/data/db - mongodb_config:/data/configdb networks: - notely-network healthcheck: test: mongosh "mongodb://admin:password@localhost:27017/admin?authSource=admin" --quiet --eval "db.adminCommand('ping').ok" interval: 10s timeout: 5s retries: 5 notely: build: context: . dockerfile: ./devops/docker/Dockerfile args: VITE_API_BASE_URL: ${VITE_API_BASE_URL} container_name: notely-app ports: - "${BACKEND_PORT}:${BACKEND_PORT}" environment: MONGODB_URI: ${MONGODB_URI} JWT_SECRET: ${JWT_SECRET} ENCRYPTION_KEY: ${ENCRYPTION_KEY} PORT: ${BACKEND_PORT} FRONTEND_URL: ${FRONTEND_URL} DEFAULT_ADMIN_EMAIL: ${DEFAULT_ADMIN_EMAIL} DEFAULT_ADMIN_USERNAME: ${DEFAULT_ADMIN_USERNAME} DEFAULT_ADMIN_PASSWORD: ${DEFAULT_ADMIN_PASSWORD} depends_on: mongodb: condition: service_healthy networks: - notely-network nginx: image: nginx:1.25-alpine container_name: notely-nginx ports: - "${NGINX_HTTP_PORT}:80" - "${NGINX_HTTPS_PORT}:443" volumes: - ./devops/docker/nginx.conf:/etc/nginx/nginx.conf:ro - ./devops/docker/ssl:/etc/nginx/ssl:ro depends_on: - notely networks: - notely-network volumes: mongodb_data: mongodb_config: networks: notely-network: driver: bridge