From bc8a775f125bd3e7a4cc6742bcf4d5a020833b25 Mon Sep 17 00:00:00 2001 From: fanyinrumeng <42991257+fanyinrumeng@users.noreply.github.com> Date: Wed, 4 Dec 2024 02:31:30 +0800 Subject: [PATCH] Update Dockerfile --- Dockerfile | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index c7af72d1..3424c5c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,12 @@ -FROM python:3.11-slim-bookworm - -EXPOSE 8080 +# 第一阶段:安装依赖项 +FROM python:3.11-slim-bookworm AS builder WORKDIR /app/zhenxun +# 复制项目文件 COPY . /app/zhenxun +# 更新包列表并安装必要的依赖项 RUN apt update && \ apt upgrade -y && \ apt install -y --no-install-recommends \ @@ -13,18 +14,35 @@ RUN apt update && \ g++ && \ apt clean +# 安装 Poetry 并设置不使用虚拟环境 RUN pip install poetry +ENV POETRY_VIRTUALENVS_CREATE=false -RUN poetry export -f requirements.txt --output requirements.txt --without-hashes +# 安装项目依赖项 +RUN poetry install -RUN pip install -r requirements.txt +# 安装 Playwright 及其依赖项 +RUN poetry run playwright install --with-deps chromium -VOLUME /app/zhenxun/data /app/zhenxun/data +# 清理不必要的依赖项 +RUN apt purge -y gcc g++ && \ + apt autoremove -y && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* -VOLUME /app/zhenxun/resources /app/zhenxun/resources +# 第二阶段:运行应用 +FROM python:3.11-slim-bookworm -VOLUME /app/zhenxun/.env.dev /app/zhenxun/.env.dev +EXPOSE 8080 -RUN playwright install --with-deps chromium +WORKDIR /app/zhenxun +# 复制依赖项和应用代码 +COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages +COPY --from=builder /app/zhenxun /app/zhenxun + +# 设置数据和资源目录 +VOLUME /app/zhenxun/data /app/zhenxun/resources /app/zhenxun/.env.dev + +# 设置默认命令 CMD ["python", "bot.py"]