services: proxy: image: metacubex/mihomo:latest container_name: mihomo restart: unless-stopped logging: driver: json-file options: max-size: "20m" max-file: "3" ports: - "${PROXY_HTTP_PORT:-7890}:7890" - "${PROXY_CONTROLLER_PORT:-9090}:9090" volumes: - ./proxy/config.yaml:/root/.config/mihomo/config.yaml:ro web: build: context: ./DouYinSparkFlow dockerfile: Dockerfile.server network: host args: PLAYWRIGHT_BASE_IMAGE: ${PLAYWRIGHT_BASE_IMAGE:-swr.cn-north-4.myhuaweicloud.com/ddn-k8s/mcr.microsoft.com/playwright/python:v1.56.0-jammy} HTTP_PROXY: ${HTTP_PROXY_BUILD:-} HTTPS_PROXY: ${HTTPS_PROXY_BUILD:-} ALL_PROXY: ${ALL_PROXY_BUILD:-} http_proxy: ${HTTP_PROXY_BUILD:-} https_proxy: ${HTTPS_PROXY_BUILD:-} all_proxy: ${ALL_PROXY_BUILD:-} PIP_INDEX_URL: ${PIP_INDEX_URL:-https://pypi.tuna.tsinghua.edu.cn/simple} PIP_TRUSTED_HOST: ${PIP_TRUSTED_HOST:-pypi.tuna.tsinghua.edu.cn} image: douyin-sparkflow:local container_name: douyin-web restart: unless-stopped depends_on: - proxy - login-desktop environment: TZ: ${TZ:-Asia/Shanghai} HTTP_PROXY: http://proxy:7890 HTTPS_PROXY: http://proxy:7890 ALL_PROXY: socks5://proxy:7890 NO_PROXY: localhost,127.0.0.1,login-desktop,douyin.com,amemv.com,snssdk.com,bytedance.com,pstatp.com,volccdn.com,bytescm.com,byted.net,douyinstatic.com,bytecdn.cn,byteimg.com,bytegoofy.com,toutiaostatic.com SPARKFLOW_LOGIN_DESKTOP_API_URL: http://login-desktop:18090 LOGIN_DESKTOP_PUBLIC_PORT: ${LOGIN_DESKTOP_WEB_PORT:-8788} ports: - "${WEB_PORT:-8787}:8787" command: python main.py --web --host 0.0.0.0 --port 8787 volumes: - ./DouYinSparkFlow:/app - ./DouYinSparkFlow/logs:/app/logs - ./state/cron:/host-spool-cron - .:/opt/douyin-sparkflow login-desktop: image: douyin-sparkflow:local container_name: login-desktop restart: unless-stopped depends_on: - proxy environment: TZ: ${TZ:-Asia/Shanghai} DISPLAY: :99 LOGIN_DESKTOP_API_PORT: "18090" LOGIN_DESKTOP_WEB_PORT: "6080" HTTP_PROXY: http://proxy:7890 HTTPS_PROXY: http://proxy:7890 ALL_PROXY: socks5://proxy:7890 NO_PROXY: localhost,127.0.0.1,login-desktop,douyin.com,amemv.com,snssdk.com,bytedance.com,pstatp.com,volccdn.com,bytescm.com,byted.net,douyinstatic.com,bytecdn.cn,byteimg.com,bytegoofy.com,toutiaostatic.com ports: - "${LOGIN_DESKTOP_WEB_PORT:-8788}:6080" command: bash /app/scripts/start_login_desktop.sh volumes: - ./DouYinSparkFlow:/app - ./DouYinSparkFlow/logs:/app/logs - ./state/login-profile:/data/login-profile scheduler: image: douyin-sparkflow:local container_name: douyin-scheduler restart: unless-stopped depends_on: - web environment: TZ: ${TZ:-Asia/Shanghai} PYTHONUNBUFFERED: "1" HTTP_PROXY: http://proxy:7890 HTTPS_PROXY: http://proxy:7890 ALL_PROXY: socks5://proxy:7890 NO_PROXY: localhost,127.0.0.1,douyin.com,amemv.com,snssdk.com,bytedance.com,pstatp.com,volccdn.com,bytescm.com,byted.net,douyinstatic.com,bytecdn.cn,byteimg.com,bytegoofy.com,toutiaostatic.com command: python /app/scripts/cron_runner.py /host-spool-cron/root volumes: - ./DouYinSparkFlow:/app - ./DouYinSparkFlow/logs:/app/logs - ./state/cron:/host-spool-cron task: image: douyin-sparkflow:local container_name: douyin-task depends_on: - proxy environment: TZ: ${TZ:-Asia/Shanghai} PYTHONUNBUFFERED: "1" HTTP_PROXY: http://proxy:7890 HTTPS_PROXY: http://proxy:7890 ALL_PROXY: socks5://proxy:7890 NO_PROXY: localhost,127.0.0.1,douyin.com,amemv.com,snssdk.com,bytedance.com,pstatp.com,volccdn.com,bytescm.com,byted.net,douyinstatic.com,bytecdn.cn,byteimg.com,bytegoofy.com,toutiaostatic.com command: python main.py --doTask volumes: - ./DouYinSparkFlow:/app - ./DouYinSparkFlow/logs:/app/logs restart: "no"