hajibussin / Dockerfile
dragg2's picture
Upload 6 files
c03b62d verified
# 构建阶段
FROM python:3.10-slim-bullseye AS builder
# 安装必要的系统依赖
RUN apt-get update && apt-get install -y \
build-essential \
gcc \
binutils \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# 复制项目文件
COPY . .
# 安装 Python 依赖
RUN pip install --no-cache-dir \
pyinstaller \
flask \
python-dotenv \
DrissionPage \
requests
# 编译二进制文件
RUN pyinstaller --onefile \
--name app_binary \
app.py
# 运行阶段
FROM python:3.10-slim-bullseye
# 安装运行时可能需要的最小依赖以及 Chromium 浏览器
# DrissionPage 需要浏览器才能工作
RUN apt-get update && apt-get install -y \
chromium \
chromium-driver \
libpython3.9 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# 仅复制编译后的二进制文件
COPY --from=builder /app/dist/app_binary .
# 复制模板文件
COPY templates ./templates
# 设置运行权限
RUN chmod +x app_binary
# 暴露端口
ENV PORT=7860
EXPOSE 7860
# 运行二进制文件
CMD ["./app_binary"]