services: crawler: container_name: sport-era-crawler image: sport-era-crawler:latest build: context: ${CRAWLER_DIR:-./crawler} dockerfile: Dockerfile restart: always env_file: - ./.env.docker environment: TZ: Asia/Shanghai DQD_CONFIG_PATH: /app/config/settings.yaml DQD_TASKS_FILE: /app/config/crawler_tasks.yaml DQD_LOCK_DIR: /app/data/locks volumes: - ${CRAWLER_DIR:-./crawler}/logs:/app/logs - ${CRAWLER_DIR:-./crawler}/data:/app/data extra_hosts: - "host.docker.internal:host-gateway" kb-worker: container_name: sport-era-kb-worker image: sport-era-crawler:latest build: context: ${CRAWLER_DIR:-./crawler} dockerfile: Dockerfile restart: always env_file: - ./.env.docker environment: TZ: Asia/Shanghai DQD_CONFIG_PATH: /app/config/settings.yaml command: ["python", "scripts/kb_worker.py", "--batch=50", "--block-ms=5000", "--max-retries=3"] volumes: - ${CRAWLER_DIR:-./crawler}/logs:/app/logs - ${CRAWLER_DIR:-./crawler}/data:/app/data extra_hosts: - "host.docker.internal:host-gateway"