Skip to content

Python-slim镜像制作

Python基础镜像制作,添加中文字体

Windows 电脑上,可以在 C:\Windows\Fonts 下找到。 或者下载开源且风格类似的 思源宋体 (Noto Serif CJK SC)STIX (用于数学公式)

FROM python:3.11-slim
# 使用国内镜像源
# 防止 hidden 的 bookworm 源干扰
RUN rm -rf /etc/apt/sources.list.d/* /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/debian/ testing main non-free non-free-firmware contrib" > /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/debian/ testing main non-free non-free-firmware contrib" >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/debian-security/ testing-security main non-free non-free-firmware contrib" >> /etc/apt/sources.list
# 1. 更新源并安装 fontconfig
# --no-install-recommends: 避免安装不必要的推荐包,保持镜像小
# rm -rf /var/lib/apt/lists/*: 安装后删除 apt 缓存,减小镜像体积 (Slim 镜像的最佳实践)
RUN apt-get update && \
apt-get install -y --no-install-recommends fontconfig && \
rm -rf /var/lib/apt/lists/*
# 2. 创建字体目录
RUN mkdir -p /usr/share/fonts/truetype/custom
# 3. 拷贝字体文件 (确保你的项目目录下有 fonts/simsun.ttc)
COPY ./fonts/simsun.ttc /usr/share/fonts/truetype/custom/
# 4. 刷新系统字体缓存 (现在这个命令可以成功运行了)
RUN fc-cache -fv
# --- 关键修改结束 ---
# 下面是原本的构建步骤
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
# ... CMD 等指令
  1. apt-get install fontconfig:

    • python:3.11 (完整版) 基于 Debian 完整版,通常自带很多工具。
    • python:3.11-slim 基于 Debian Slim,砍掉了非必要的工具(包括管理字体的工具)。如果不手动安装 fontconfig,你就无法将新字体注册到系统里。
  2. rm -rf /var/lib/apt/lists/*:

    • slim 镜像中,安装完软件后如果不清理缓存,会白白增加这一层的体积。这是编写高质量 Dockerfile 的标准操作。
  • 拷贝指令 (COPY):本身没有影响,完全通用。
  • 刷新指令 (fc-cache):在 slim 镜像下必须先安装 fontconfig 才能用。