zhenxun_bot/Dockerfile

49 lines
1.1 KiB
Docker
Raw Normal View History

2024-12-04 02:31:30 +08:00
# 第一阶段:安装依赖项
FROM python:3.11-slim-bookworm AS builder
2024-08-14 13:35:03 +08:00
WORKDIR /app/zhenxun
2024-12-04 02:31:30 +08:00
# 复制项目文件
2024-08-14 13:35:03 +08:00
COPY . /app/zhenxun
2024-12-04 02:31:30 +08:00
# 更新包列表并安装必要的依赖项
2024-09-02 01:17:12 +08:00
RUN apt update && \
apt upgrade -y && \
apt install -y --no-install-recommends \
gcc \
2024-09-02 23:07:17 +08:00
g++ && \
2024-09-02 01:17:12 +08:00
apt clean
2024-12-04 02:31:30 +08:00
# 安装 Poetry 并设置不使用虚拟环境
2024-12-03 18:52:13 +08:00
RUN pip install poetry
2024-12-04 02:31:30 +08:00
ENV POETRY_VIRTUALENVS_CREATE=false
# 安装项目依赖项
RUN poetry install
2024-12-03 18:52:13 +08:00
2024-12-04 02:31:30 +08:00
# 安装 Playwright 及其依赖项
RUN poetry run playwright install --with-deps chromium
2024-12-03 18:52:13 +08:00
2024-12-04 02:31:30 +08:00
# 清理不必要的依赖项
RUN apt purge -y gcc g++ && \
apt autoremove -y && \
apt clean && \
rm -rf /var/lib/apt/lists/*
2024-08-14 13:35:03 +08:00
2024-12-04 02:31:30 +08:00
# 第二阶段:运行应用
FROM python:3.11-slim-bookworm
EXPOSE 8080
2024-08-14 13:35:03 +08:00
2024-12-04 02:31:30 +08:00
WORKDIR /app/zhenxun
2024-08-14 13:35:03 +08:00
2024-12-04 02:31:30 +08:00
# 复制依赖项和应用代码
COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
COPY --from=builder /app/zhenxun /app/zhenxun
2024-09-02 23:07:17 +08:00
2024-12-04 02:31:30 +08:00
# 设置数据和资源目录
VOLUME /app/zhenxun/data /app/zhenxun/resources /app/zhenxun/.env.dev
2024-08-14 13:35:03 +08:00
2024-12-04 02:31:30 +08:00
# 设置默认命令
2024-12-03 17:23:20 +08:00
CMD ["python", "bot.py"]