# payswitch 浏览器沙箱镜像
#
# 构建: docker build -f server/Dockerfile -t payswitch-sandbox:latest .
# 用途: 每个支付任务在独立容器中运行 Playwright + payswitch engine

FROM python:3.12-slim

# 系统依赖（Playwright + Chromium 所需）
RUN apt-get update && apt-get install -y --no-install-recommends \
    curl \
    && rm -rf /var/lib/apt/lists/*

# 非 root 用户
RUN useradd -u 911 -U -m -s /bin/false payswitch

WORKDIR /app

# 先安装 Python 依赖（利用 Docker 缓存）
COPY pyproject.toml ./
RUN pip install --no-cache-dir ".[server]" 2>/dev/null || true

# 复制项目代码
COPY payswitch/ ./payswitch/
COPY server/ ./server/

# 安装 payswitch 包
RUN pip install --no-cache-dir -e .

# 安装 Playwright + Chromium
RUN playwright install chromium --with-deps

# Docker 环境标记
ENV IN_DOCKER=True
ENV PYTHONUNBUFFERED=1

# 切换到非 root 用户
USER payswitch

# 入口: 执行沙箱任务脚本
CMD ["python", "-m", "server.sandbox_entry"]
