Docker 容器中的 rrdgraph 中的自定义字体 运行 Alpine Linux

Custom fonts in rrdgraph in a Docker container running Alpine Linux

除了 rrdgraph 中的标准字体,我无法使用其他字体。

这可能与这个 Alpine 没有 GUI(所有 X-stuff)有关,我不知道。

我发现这个问题 https://bugs.alpinelinux.org/issues/1475 处理丢失的字体,但安装这些包没有帮助。

这是我的 Dockerfile

FROM alpine:3.3

RUN apk --update add \
      build-base python-dev \
      ca-certificates python \
      py-pip \
      py-jinja2 \
      py-dateutil \
      py-tz \
      py-requests \
      py-pillow \
      py-rrd && \
    pip install --upgrade arrow \
                          websocket-client \
                          XlsxWriter && \
    apk del build-base python-dev && \
    rm -rf /var/cache/apk/* && \
    echo "iot"

CMD ["/bin/sh"]

我后来用 docker exec -it iot /bin/sh

手动添加了这些字体包

我试过

  # rrd_graph_fmt += ["--font", "LEGEND:8:'/home/user/data/fonts/Roboto-Regulars.ttf'"]
  # rrd_graph_fmt += ["--font", "LEGEND:8:font-sony-misc"]

但这就是行不通。我什至不确定如何使用环境变量全局更改字体。我试过了(网上有些东西有环境变量),但没用。

我真的很喜欢使用 ttf 字体,但如果需要的话,我会选择使用软件包中的字体。

我正在使用 py-rrd 包中的 rrdtool 库。

有人知道如何让它工作吗?

RRDtool 使用 fontconfig 访问字体...查看您的系统上可用的字体,您可以使用

fc-list

要配置 fontconfig 应在何处查找字体,您可能需要在主目录中编辑 /etc/fonts/...~/.fonts.conf.d

要刷新字体列表,运行

fc-cache

请注意,字体支持独立于 X11。