优化后的 Dockerfile
FROM python:3.10.11-slim
WORKDIR /app
# 设置环境变量抑制警告
ENV PIP_ROOT_USER_ACTION=ignore \
PYTHONUNBUFFERED=1
# 使用国内镜像源
RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list && \
sed -i 's|security.debian.org|mirrors.aliyun.com/debian-security|g' /etc/apt/sources.list
# 安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
wkhtmltopdf \
fonts-wqy-zenhei \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 复制预下载的wheel文件
COPY wheels/*.whl /tmp/wheels/
# 安装Python依赖(不升级pip)
RUN pip install --no-cache-dir \
--index-url https://mirrors.aliyun.com/pypi/simple/ \
/tmp/wheels/*.whl \
&& rm -rf /tmp/wheels
# 验证安装
RUN python -c "import flask, pdfkit; print('验证通过')"
CMD ["python"]
wheels目录内的文件
requirements.txt列表
asgiref==3.8.1
blinker==1.9.0
click==8.1.8
Django==4.2.23
Flask==3.1.1
importlib_metadata==8.7.0
itsdangerous==2.2.0
Jinja2==3.1.6
MarkupSafe==3.0.2
numpy==2.0.2
pandas==2.3.0
python-dateutil==2.9.0.post0
pytz==2025.2
six==1.17.0
sqlparse==0.5.3
typing_extensions==4.14.0
tzdata==2025.2
Werkzeug==3.1.3
zipp==3.23.0
pdfkit==1.0.0
requests==2.32.3
pypdf2==3.0.1
==============================================
已验证成功的ARM64版本 (2025-07-04)
特点:
1. 基于python:3.10.11-slim-buster-linuxarm64
2. 使用阿里云Debian源和清华pip源
3. 包含wkhtmltopdf ARM64版完整安装
4. 包含所有Python依赖项
构建命令:docker build -t your-app:arm64 .
==============================================
FROM python:3.10.11-slim-buster-linuxarm64
WORKDIR /app
# 阿里云Debian源
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
# 安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
xfonts-75dpi \
xfonts-base \
fontconfig \
libjpeg62-turbo \
libx11-6 \
libxext6 \
libxrender1 \
xfonts-utils \
fonts-wqy-zenhei \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 安装wkhtmltopdf
COPY wkhtmltopdf.deb /tmp/
RUN apt-get update && \
apt-get install -y /tmp/wkhtmltopdf.deb --no-install-recommends \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/wkhtmltopdf.deb \
&& ln -s /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
# 验证wkhtmltopdf安装
RUN which wkhtmltopdf && wkhtmltopdf --version
# 清华pip源
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装Python依赖
COPY wheels/*.whl /tmp/wheels/
ENV PIP_ROOT_USER_ACTION=ignore
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir \
/tmp/wheels/*.whl \
psutil==7.0.0 \
MarkupSafe==3.0.2 \
charset-normalizer==3.4.2 \
asgiref==3.8.1 \
Django==4.2.23 \
importlib_metadata==8.7.0 \
numpy==2.0.2 \
pandas==2.3.0 \
python-dateutil==2.9.0.post0 \
pytz==2025.2 \
six==1.17.0 \
sqlparse==0.5.3 \
typing_extensions==4.14.0 \
tzdata==2025.2 \
zipp==3.23.0 \
pypdf2==3.0.1
# 验证中文字体
RUN fc-list :lang=zh
ENV PYTHONUNBUFFERED=1
CMD ["python"]
评论 (0)