my-test / Dockerfile
Looknicemm's picture
Upload 18 files
dbe3386 verified
Raw
History Blame Contribute Delete
885 Bytes
# ─── 构建阶段:使用 uv 安装依赖 ───
FROM python:3.11-slim AS builder
# 安装 uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
WORKDIR /app
# 先复制依赖清单,利用 Docker 缓存
COPY pyproject.toml uv.lock .python-version ./
# 安装依赖到 .venv(离线锁定)
RUN uv sync --frozen --no-install-project
# ─── 运行阶段 ───
FROM python:3.11-slim
WORKDIR /app
# 从构建阶段复制虚拟环境
COPY --from=builder /app/.venv /app/.venv
# 复制项目文件
COPY . .
COPY data/config.json /app/config.json
# 设置环境变量
ENV PATH="/app/.venv/bin:$PATH" \
PYTHONUNBUFFERED=1
# 创建数据目录(持久化挂载点)
RUN mkdir -p /app/codex_tokens /app/logs
EXPOSE 8080
CMD ["python", "-m", "uvicorn", "web_app:app", "--host", "0.0.0.0", "--port", "8080"]