You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker在GitHub Actions构建时无法加载字体的问题排查

解决Alpine镜像在GitHub Actions构建后字体无法加载的问题

问题原因

Alpine系统中,fontconfig不会自动扫描新添加的字体并生成缓存。本地macOS构建环境可能因Docker的默认行为自动完成了缓存更新,但GitHub Actions的Ubuntu环境下无此触发逻辑,导致fc-list无法识别新复制的字体。

修复方法

修改Dockerfile,在安装fontconfig后手动执行字体缓存更新命令:

修改后的Dockerfile内容:

FROM alpine:3.18

ENV LANG=en_US.UTF-8 \
    LC_ALL=en_US.UTF-8 \
    TZ=Asia/Shanghai

WORKDIR /app
ENV ROCKET_ADDRESS=0.0.0.0
RUN mkdir -p /usr/share/fonts/ && mkdir -p /app/config/ && mkdir -p /root/.ssh
COPY ./config/font/HelveticaNeueLTPro-Md.otf /usr/share/fonts/
RUN apk update && apk add fontconfig \
    && fc-cache -fv /usr/share/fonts/
CMD sh -c 'while true; do sleep 1; done'

关键说明

  • fc-cache -fv 命令会强制刷新(-f)并输出详细日志(-v)指定目录下的字体缓存,确保新复制的字体被fontconfig识别。
  • 将fc-cache与apk add放在同一个RUN指令中,可减少镜像层数,符合Docker构建最佳实践。

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 19:41:08