services: api: build: context: . dockerfile: Dockerfile container_name: theplug-api restart: unless-stopped ports: - "${API_PORT:-3671}:3671" environment: MONGODB_URL: mongodb://${MONGO_USER:-theplug}:${MONGO_PASSWORD:-theplug_dev_password}@mongodb:27017/${MONGO_DB:-theplug}?authSource=admin REDIS_URL: redis://redis:6379/0 depends_on: mongodb: condition: service_healthy redis: condition: service_healthy healthcheck: test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:3671/').read()\""] interval: 10s timeout: 5s retries: 5 start_period: 10s mongodb: image: mongo:8 container_name: theplug-mongodb restart: unless-stopped environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER:-theplug} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD:-pass} MONGO_INITDB_DATABASE: ${MONGO_DB:-theplug} ports: - "27017:27017" volumes: - mongodb_data:/data/db healthcheck: test: ["CMD-SHELL", "mongosh --quiet --username ${MONGO_USER:-theplug} --password ${MONGO_PASSWORD:-theplug_dev_password} --authenticationDatabase admin --eval \"db.adminCommand({ ping: 1 }).ok\" | grep 1"] interval: 10s timeout: 5s retries: 5 start_period: 10s redis: image: redis:8-alpine container_name: theplug-redis restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] ports: - "6379:6379" volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 start_period: 5s volumes: mongodb_data: redis_data: