services: redis: image: redis:7 ports: - "6379:6379" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 mongodb: image: mongo:7 ports: - "27017:27017" volumes: - mongo-data:/data/db healthcheck: test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] interval: 10s timeout: 5s retries: 5 worker: build: context: . dockerfile: docker/worker/Dockerfile depends_on: redis: condition: service_healthy mongodb: condition: service_healthy environment: REDIS_URL: redis://redis:6379 REDIS_QUEUE_NAME: rss-feed-queue MONGODB_URL: mongodb://mongodb:27017 MONGODB_ARTICLES_DB_NAME: articles_db MONGODB_ARTICLES_COLLECTION_NAME: articles MONGODB_FEEDS_DB_NAME: feeds_db MONGODB_FEEDS_COLLECTION_NAME: rss_feeds STORAGE_STRATEGY: mongodb LOG_LEVEL: INFO scheduler: build: context: . dockerfile: docker/scheduler/Dockerfile depends_on: redis: condition: service_healthy mongodb: condition: service_healthy environment: REDIS_URL: redis://redis:6379 REDIS_QUEUE_NAME: rss-feed-queue MONGODB_URL: mongodb://mongodb:27017 MONGODB_ARTICLES_DB_NAME: articles_db MONGODB_ARTICLES_COLLECTION_NAME: articles MONGODB_FEEDS_DB_NAME: feeds_db MONGODB_FEEDS_COLLECTION_NAME: rss_feeds LOG_LEVEL: INFO dashboard: build: context: . dockerfile: src/dashboard/Dockerfile depends_on: mongodb: condition: service_healthy environment: MONGODB_URL: mongodb://mongodb:27017 MONGODB_FEEDS_DB_NAME: feeds_db MONGODB_FEEDS_COLLECTION_NAME: rss_feeds volumes: - ./src/dashboard:/app ports: - "18000:8000" volumes: mongo-data: