name: tidb-ai-integration-test

services:
  redis:
    image: redis:6.0.16
    restart: always
    pull_policy: always
    volumes:
      - ${E2E_DATA_REDIS_DIR:-.data/redis}:/data

  backend:
    image: tidbai/backend:${E2E_DOCKER_TAG_BACKEND}
    platform: ${E2E_DOCKER_PLATFORM}
    restart: always
    depends_on:
      - redis
    ports:
      - "5001:80"
    env_file:
      - .env.backend
    volumes:
      - ${E2E_DATA_STORAGE_DIR:-.data/storage}:/shared/data
    logging:
      driver: json-file
      options:
        max-size: "50m"
        max-file: "6"
    extra_hosts:
      host.docker.internal: host-gateway

  frontend:
    image: tidbai/frontend:${E2E_DOCKER_TAG_FRONTEND}
    platform: ${E2E_DOCKER_PLATFORM}
    restart: always
    depends_on:
      - backend
    ports:
      - "3000:3000"
    environment:
      BASE_URL: http://backend
    env_file:
      - .env.frontend
    logging:
      driver: json-file
      options:
        max-size: "50m"
        max-file: "6"

  background:
    image: tidbai/backend:${E2E_DOCKER_TAG_BACKEND}
    platform: ${E2E_DOCKER_PLATFORM}
    restart: always
    depends_on:
      - redis
    ports:
      - "5555:5555"
    env_file:
      - .env.backend
    command: /usr/bin/supervisord
    volumes:
      - ${E2E_DATA_STORAGE_DIR:-.data/storage}:/shared/data
    logging:
      driver: json-file
      options:
        max-size: "50m"
        max-file: "6"
    extra_hosts:
      host.docker.internal: host-gateway

  static-web-server:
    image: joseluisq/static-web-server:2
    restart: always
    ports:
      - "4001:80"
    volumes:
      - ./test-html:/public
