如何设置 UBI8 容器通过 sphinx 编译 PDF 文档?

如何设置 UBI8 容器通过 sphinx 编译 PDF 文档?

我看到有一个基于 Debian 的映像可以在这里执行此操作(https://hub.docker.com/r/sphinxdoc/sphinx-latexpdf),但我需要将我的解决方案基于 Red Hat UBI 8 容器映像。我需要安装哪些软件包才能使其在该平台上运行? (构建时我将使用 RHEL 订阅的计算机。)

我希望以重构文本格式安装包含我的文档的卷,并希望容器通过 Sphinx 提供 HTML 和 PDF 输出,就像链接的 sphinxdoc/sphinx-latexpdf 文档一样。

答案1

各种要求似乎分布在 CodeReady、AppStream 和 Epel 存储库中。您需要设置所有这些,然后似乎texlive-*需要安装几乎每个软件包。我将这些列表放入 texlive-requirements.txt 中。然后我创建了这个 Dockerfile 并构建了它。我还假设您需要将一些 python 要求放入 pip-requirements.txt 中。

FROM ubi8
WORKDIR /docs

# Setup Extra RPM repositories
# CodeReady Builder is an EPEL dependency and has several texlive-* packages
# Epel is a dependency of latexmk
RUN yum -y update \
  && yum -y install yum-utils \
  && yum-config-manager --enable codeready-builder-for-rhel-8-x86_64-rpms \
  && rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8 \
  && yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

# Fill texlive-requirements.txt with all the packages in 
# `yum list available|grep texlive` as run from a UBI8 container with 
# the above repos provided
ARG deps="ImageMagick graphviz make wget enchant curl python3-pip latexmk"
ADD texlive-requirements.txt /tmp/yum.txt
RUN yum install -y $deps $(cat /tmp/yum.txt) && \
    yum clean all

# For whatever python dependencies, put them in pip-requirements.txt
ADD pip-requirements.txt /tmp/requirements.txt
RUN pip3 install -r /tmp/requirements.txt

这应该像sphinx 提供的 docker hub 上的镜像包括卷安装并支持 HTML 和 LatexPDF 构建。

相关内容