Como configuro um contêiner UBI8 para compilar documentos PDF via esfinge?

Como configuro um contêiner UBI8 para compilar documentos PDF via esfinge?

Vejo que existe uma imagem baseada em Debian que pode fazer isso aqui (https://hub.docker.com/r/sphinxdoc/sphinx-latexpdf), mas preciso basear minha solução na imagem do contêiner Red Hat UBI 8. Quais pacotes preciso instalar para que funcione nessa plataforma? (Estarei em uma máquina assinada pelo RHEL durante a construção.)

Espero montar um volume com minha documentação no formato de texto reestruturado e quero que o contêiner forneça saída HTML e PDF via Sphinx da mesma forma que o documento sphinxdoc/sphinx-latexpdf vinculado.

Responder1

Os vários requisitos parecem estar espalhados pelos repositórios CodeReady, AppStream e Epel. Você precisará configurar tudo isso e então parece que texlive-*é necessário instalar quase todos os pacotes. Coloquei a lista deles em texlive-requirements.txt. Então criei este Dockerfile e o construí. Presumo também que você terá alguns requisitos de python para colocar em 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

Isso deve funcionar exatamente como oimagem no docker hub que o sphinx forneceincluindo a montagem de volume e suporte a compilações HTML e LatexPDF.

informação relacionada