services: redis: image: redis:8 container_name: statusnest-redis restart: unless-stopped api: build: . container_name: statusnest-api ports: - "8000:8000" volumes: - .:/app depends_on: - db - redis environment: DATABASE_URL: ${DATABASE_URL} JWT_SECRET_KEY: ${JWT_SECRET_KEY} db: image: mysql:8.4 container_name: statusnest-db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql worker: build: . container_name: statusnest-worker command: celery -A app.worker.celery_app worker --loglevel=info volumes: - .:/app depends_on: - db - redis environment: DATABASE_URL: ${DATABASE_URL} DATABASE_SYNC_URL: ${DATABASE_SYNC_URL} CELERY_BROKER_URL: ${CELERY_BROKER_URL} beat: build: . container_name: statusnest-beat command: celery -A app.worker.celery_app beat --loglevel=info volumes: - .:/app depends_on: - db - redis environment: CELERY_BROKER_URL: ${CELERY_BROKER_URL} volumes: mysql_data: