services:
  ipat-purchase:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ipat_purchase
    restart: unless-stopped
    volumes:
      # IPATスクリプト群をメインプロジェクトからマウント
      - ${IPAT_SCRIPT_DIR:-/volume1/docker/match_12/python/ipat-purchase}:/app/scripts:ro
      # サーバー本体もマウント（再ビルド不要で更新反映）
      - ${IPAT_SERVER_PY:-./ipat_server.py}:/app/ipat_server.py:ro
      # データ永続化（スクリーンショット、ログ、Chromeプロファイル）
      - ipat_data:/data
    ports:
      - "${IPAT_PORT:-5200}:5200"   # 購入API
      - "${NOVNC_PORT:-6180}:6180"  # noVNC (ブラウザでChrome画面を確認)
    environment:
      - IPAT_PORT=5200
      - NOVNC_PORT=6180
      - SCREEN_WIDTH=1920
      - SCREEN_HEIGHT=1080
      - STORAGE_PATH=/data
      # Cloudflare Tunnel等のリバースプロキシから /api/* 付きで転送された場合
      # Flaskに渡す前に剥がす（直接アクセスも従来通り動作）
      - IPAT_PATH_PREFIX=${IPAT_PATH_PREFIX:-/api}
    deploy:
      resources:
        limits:
          memory: 1536M
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5200/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s

volumes:
  ipat_data:
