python的docker镜像构建(麒麟v10sp2arm64)

奥黛丽·逐爱者
2025-06-28 / 0 评论 / 2 阅读 / 正在检测是否收录...

优化后的 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目录内的文件

mco6but8.png

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

评论 (0)

取消