services: mongodb: image: mongo:7.0 restart: unless-stopped command: ["mongod", "--bind_ip_all"] ports: - "27017:27017" volumes: - mongo-data:/data/db redis: image: redis:7.2-alpine restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] ports: - "6379:6379" volumes: - redis-data:/data api: build: context: ./backend dockerfile: Dockerfile restart: unless-stopped env_file: - .env.remote depends_on: - mongodb - redis command: uvicorn app.main:app --host 0.0.0.0 --port 8080 volumes: - app-data:/app/data bot: build: context: ./backend dockerfile: Dockerfile restart: unless-stopped env_file: - .env.remote depends_on: - mongodb - redis - api command: python -m app.bot.main volumes: - app-data:/app/data worker: build: context: ./backend dockerfile: Dockerfile restart: unless-stopped env_file: - .env.remote depends_on: - mongodb - redis command: celery -A app.workers.celery_app.celery_app worker -l info -Q jobs.high,jobs.default,jobs.low volumes: - app-data:/app/data beat: build: context: ./backend dockerfile: Dockerfile restart: unless-stopped env_file: - .env.remote depends_on: - mongodb - redis command: celery -A app.workers.celery_app.celery_app beat -l info volumes: - app-data:/app/data nginx: image: nginx:1.27-alpine restart: unless-stopped depends_on: - api ports: - "80:80" volumes: - ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro volumes: mongo-data: redis-data: app-data: