services: app: build: context: . container_name: taiko-web-app depends_on: mongo: condition: service_started redis: condition: service_healthy environment: PYTHONUNBUFFERED: "1" TAIKO_WEB_MONGO_HOST: mongo:27017 TAIKO_WEB_REDIS_HOST: redis REDIS_URI: redis://redis:6379/0 TAIKO_WEB_SONGS_DIR: /data/songs TAIKO_WEB_SECRET_KEY_FILE: /run/secrets/taiko-web-secret-key ports: - "80:80" restart: unless-stopped volumes: - ./config.py:/app/config.py:ro - ./.taiko-secret-key:/run/secrets/taiko-web-secret-key:ro - ${TAIKO_WEB_DATA_DIR:-/srv/taiko-web-data}/songs:/data/songs mongo: container_name: taiko-web-mongo image: mongo:7.0 restart: unless-stopped volumes: - ${TAIKO_WEB_DATA_DIR:-/srv/taiko-web-data}/mongo:/data/db redis: command: - redis-server - --appendonly - "yes" container_name: taiko-web-redis image: redis:7-alpine restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 12 start_period: 5s volumes: - ${TAIKO_WEB_DATA_DIR:-/srv/taiko-web-data}/redis:/data