调整依赖,不再在运行时安装依赖
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing

This commit is contained in:
2025-10-24 21:50:16 +08:00
parent 7ba1a92623
commit 18785f034b

View File

@ -1,25 +1,31 @@
# copied from https://www.martinrichards.me/post/python_poetry_docker/
FROM python:3.13-slim AS base FROM python:3.13-slim AS base
ENV VIRTUAL_ENV=/app/.venv \ ENV VIRTUAL_ENV=/app/.venv \
PATH="/app/.venv/bin:$PATH" PATH="/app/.venv/bin:$PATH" \
PLAYWRIGHT_BROWSERS_PATH=0
# 安装所有都需要的底层依赖
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
libfontconfig1 \ libfontconfig1 libgl1 libegl1 libglvnd0 mesa-vulkan-drivers at-spi2-common fontconfig \
libgl1 \ libasound2-data libavahi-client3 libavahi-common-data libavahi-common3 libdatrie1 \
libegl1 \ libfontenc1 libfribidi0 libgraphite2-3 libharfbuzz0b libice6 libpixman-1-0 \
libglvnd0 \ libsm6 libthai-data libthai0 libunwind8 libxaw7 libxcb-render0 libxfont2 libxi6 \
mesa-vulkan-drivers \ libxkbfile1 libxmu6 libxpm4 libxrender1 libxt6t64 x11-common x11-xkb-utils \
build-essential \ xfonts-encodings xfonts-utils xkb-data xserver-common libnspr4 libatk1.0-0t64 \
cmake \ libatk-bridge2.0-0t64 libatspi2.0-0t64 libxcomposite1 libxdamage1 libxfixes3 \
git \ libxkbcommon0 libasound2t64 libnss3 \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
FROM base AS builder FROM base AS builder
# 安装构建依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake git \
&& rm -rf /var/lib/apt/lists/*
ENV POETRY_NO_INTERACTION=1 \ ENV POETRY_NO_INTERACTION=1 \
POETRY_VIRTUALENVS_IN_PROJECT=1 \ POETRY_VIRTUALENVS_IN_PROJECT=1 \
POETRY_VIRTUALENVS_CREATE=1 \ POETRY_VIRTUALENVS_CREATE=1 \
@ -40,7 +46,7 @@ COPY --from=builder ${VIRTUAL_ENV} ${VIRTUAL_ENV}
WORKDIR /app WORKDIR /app
RUN python -m playwright install --with-deps chromium RUN python -m playwright install chromium
COPY bot.py pyproject.toml .env.prod .env.test ./ COPY bot.py pyproject.toml .env.prod .env.test ./
COPY assets ./assets COPY assets ./assets