name: labs

services:
  nginx:
    image: nginx:1.29.4
    restart: unless-stopped
    ports:
      - "80:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./nginx/conf.d:/etc/nginx/conf.d:ro
    logging:
      driver: "json-file"
      options:
        max-size: "200m"
        max-file: "5"
    networks:
      - labs-network

  global-frontend:
    image: registry.us-west-1.aliyuncs.com/pingcap-ee/tidb-labs-global-frontend:latest
    restart: unless-stopped
    volumes:
      - ./frontend_logs/global.log:/tidb-labs/pino.log
    ports:
      - "13100:3000"
    env_file:
      - .frontend_global_env
    logging:
      driver: "json-file"
      options:
        max-size: "200m"
        max-file: "10"
    networks:
      - labs-network

  china-frontend:
    image: registry.us-west-1.aliyuncs.com/pingcap-ee/tidb-labs-china-frontend:latest
    restart: unless-stopped
    volumes:
      - ./frontend_logs/china.log:/tidb-labs/pino.log
    ports:
      - "13200:3000"
    env_file:
      - .frontend_china_env
    logging:
      driver: "json-file"
      options:
        max-size: "200m"
        max-file: "10"
    networks:
      - labs-network

  backend:
    image: registry.us-west-1.aliyuncs.com/pingcap-ee/tidb-labs-backend:latest
    restart: unless-stopped
    volumes:
      - /home/ubuntu/tidb-labs:/app/labs/labs
      - ./backend_temp:/app/labs/lab_manager_v2/temp
    ports:
      - "8000:8000"
    env_file:
      - .backend_env
    networks:
      - labs-network

  celery-worker:
    image: registry.us-west-1.aliyuncs.com/pingcap-ee/tidb-labs-backend:latest
    restart: unless-stopped
    command: celery -A labs worker --concurrency=20 --loglevel=INFO
    volumes:
      - /home/ubuntu/tidb-labs:/app/labs/labs
      - ./backend_temp:/app/labs/lab_manager_v2/temp
    env_file:
      - .backend_env
    networks:
      - labs-network

  celery-beat:
    image: registry.us-west-1.aliyuncs.com/pingcap-ee/tidb-labs-backend:latest
    restart: unless-stopped
    command: celery -A labs beat -S redbeat.RedBeatScheduler
    env_file:
      - .backend_env
    networks:
      - labs-network
networks:
  labs-network:
    driver: bridge
