基于 python:3.10.11-slim 构建带依赖的 Docker 镜像
FROM python:3.10.11-slim
WORKDIR /app
# 安装系统依赖(使用小写包名,并确保正确换行)
RUN apt-get update && apt-get install -y --no-install-recommends \
wkhtmltopdf \
fonts-liberation \
fonts-wqy-zenhei \
xfonts-75dpi \
xfonts-base \
libaio1 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 复制wheel文件
COPY wheels/*.whl /tmp/wheels/
# 设置pip不警告root用户
ENV PIP_ROOT_USER_ACTION=ignore
# 安装Python依赖
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir \
/tmp/wheels/werkzeug-3.1.3-py3-none-any.whl \
/tmp/wheels/urllib3-2.4.0-py3-none-any.whl \
/tmp/wheels/requests-2.32.3-py3-none-any.whl \
/tmp/wheels/pdfkit-1.0.0-py3-none-any.whl \
/tmp/wheels/jinja2-3.1.6-py3-none-any.whl \
/tmp/wheels/itsdangerous-2.2.0-py3-none-any.whl \
/tmp/wheels/idna-3.10-py3-none-any.whl \
/tmp/wheels/flask-3.1.1-py3-none-any.whl \
/tmp/wheels/colorama-0.4.6-py2.py3-none-any.whl \
/tmp/wheels/click-8.2.0-py3-none-any.whl \
/tmp/wheels/certifi-2025.4.26-py3-none-any.whl \
/tmp/wheels/blinker-1.9.0-py3-none-any.whl \
psutil==7.0.0 \
MarkupSafe==3.0.2 \
charset-normalizer==3.4.2 \
cx_Oracle==8.3.0
# 验证字体安装
RUN fc-list :lang=zh
# 验证wkhtmltopdf
RUN wkhtmltopdf --version
ENV PYTHONUNBUFFERED=1
CMD ["python"]
评论 (0)