![Как настроить контейнер UBI8 для компиляции PDF-документов через sphinx?](https://rvso.com/image/168795/%D0%9A%D0%B0%D0%BA%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%20UBI8%20%D0%B4%D0%BB%D1%8F%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D0%B8%20PDF-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20sphinx%3F.png)
Я вижу, что есть образ на основе Debian, который может это сделать (https://hub.docker.com/r/sphinxdoc/sphinx-latexpdf), но мне нужно основать свое решение на образе контейнера Red Hat UBI 8. Какие пакеты мне нужно установить, чтобы это работало на этой платформе? (При сборке я буду на подписанной машине RHEL.)
Я планирую смонтировать том с моей документацией в формате реструктурированного текста и хочу, чтобы контейнер предоставлял вывод HTML и PDF через Sphinx так же, как это делает связанный документ 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
Это должно работать так же, какизображение на Docker Hub, которое предоставляет Sphinxвключая монтирование тома и поддержку сборок HTML и LatexPDF.