AutoTeam-F / Dockerfile
ZRainbow's picture
feat(round-4 infra): docker-guard + playwright-hardening + 调研/PRD/SPEC 文档基线
d9d9e44
Raw
History Blame Contribute Delete
1.17 kB
FROM python:3.12-slim
# 系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
xvfb \
curl \
fonts-noto-cjk \
&& rm -rf /var/lib/apt/lists/*
# 安装 uv
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.local/bin:$PATH"
WORKDIR /app
# === SPEC-3 §3: 镜像版本指纹注入 ===
ARG GIT_SHA=unknown
ARG BUILD_TIME=unknown
LABEL org.opencontainers.image.revision="${GIT_SHA}"
LABEL org.opencontainers.image.created="${BUILD_TIME}"
ENV AUTOTEAM_GIT_SHA="${GIT_SHA}"
ENV AUTOTEAM_BUILD_TIME="${BUILD_TIME}"
# === SPEC-3 §3 end ===
# 复制项目文件
COPY pyproject.toml uv.lock ./
RUN uv sync --no-dev
# 安装 Playwright 浏览器
RUN uv run playwright install chromium && uv run playwright install-deps chromium
# 复制源码
COPY src/ src/
COPY web/ web/
# 数据卷(.env、accounts.json、auths/、state.json、screenshots/)
VOLUME ["/app/data"]
# 启动时将数据目录软链到工作目录
RUN mkdir -p /app/data
ENV DISPLAY=:99
EXPOSE 8787
# 启动脚本
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["api"]