version: '2.8' services: app: build: context: '.' args: - 'LOCALE=$DEFAULT_LOCALE' image: 'firefly-iii-cron:latest' restart: 'always' healthcheck: test: 'curl -f localhost:8080 || exit 1' interval: '1m' timeout: '10s' retries: 3 start_period: '10s' depends_on: db: condition: 'service_healthy' redis: condition: 'service_healthy' env_file: - '.env' labels: - 'com.centurylinklabs.watchtower.enable=true' networks: - 'nginx' - 'default' volumes: - 'upload:/var/www/html/storage/upload' db: image: 'postgres:13-alpine' restart: 'always' healthcheck: test: 'pg_isready -U $DB_USERNAME' interval: '10s' timeout: '5s' retries: 5 environment: - 'POSTGRES_DB=$DB_DATABASE' - 'POSTGRES_PASSWORD=$DB_PASSWORD' - 'POSTGRES_USER=$DB_USERNAME' labels: - 'com.centurylinklabs.watchtower.enable=true' volumes: - 'db-data:/var/lib/postgresql/data' redis: image: 'redis:6-alpine' restart: 'always' healthcheck: test: 'redis-cli -h localhost ping' interval: '10s' timeout: '5s' retries: 3 labels: - 'com.centurylinklabs.watchtower.enable=true' networks: nginx: external: true volumes: upload: db-data: