Estoy intentando realizar una instalación mínima de TexLive para un contenedor acoplable para minimizar los costos de la nube. Mi aplicación web crea etiquetas de paquetes de productos con un código UPC. En mi contenedor acoplable, aparece un error de "fuente no válida" al generar el código UPC. Estoy convencido de que este es un problema que surge de una dependencia de paquete faltante porque se compila perfectamente usando mi instalación local completa de LaTex. ¿Alguna idea sobre lo que podría faltarme? ¿O hay alguna manera de saber exactamente qué paquetes se utilizaron para compilar exitosamente un archivo TEX para poder instalarlos solo en mi contenedor?
Este es mi script de instalación mínimo en mi Dockerfile. Puedes ver que además de la instalación mínima ("scheme-basic") estoy usando tlmgr para instalar fontspec, pst-barcode, pstricks, xcolor, xkeyval, pgf, luapstricks, pst-tools, marginnote y fonética:
# Use the most up-to-date version of Ubuntu LTS
FROM ubuntu:22.04
# Install necessary system utilities
RUN apt-get update && \
apt-get install --no-install-recommends -y \
wget \
perl \
python3 python3-pip python3-dev python3-venv \
fontconfig \
ghostscript && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Download and install TeX Live
RUN wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz && \
tar -xzf install-tl-unx.tar.gz && \
cd install-tl-* && \
echo "selected_scheme scheme-basic" > texlive.profile && \
./install-tl -profile texlive.profile && \
cd .. && \
rm -rf install-tl* install-tl-unx.tar.gz
# Set the PATH to include the TeX Live binaries
ENV PATH="/usr/local/texlive/2024/bin/aarch64-linux:${PATH}"
# Install missing LaTex packages
RUN tlmgr update --self --all
RUN tlmgr install fontspec pst-barcode pstricks xcolor xkeyval pgf luapstricks pst-tools marginnote phonetic
# Set the working directory to root's home directory
WORKDIR /root
# Copy the fonts and images directories and TEX file
COPY fonts /root/fonts
COPY img /root/img
COPY label.tex /root/label.tex
# Move and cache fonts
RUN mkdir -p /usr/share/fonts/custom && \
cp /root/fonts/*.otf /usr/share/fonts/custom/ && \
fc-cache -fv
RUN ls -la /usr/share/fonts/custom
RUN fc-list
# Expose the port the app runs on
ENV PORT 8080
ENV HOST 0.0.0.0
EXPOSE 8080
# Use the virtual environment's Python as the default
ENV PATH="/root/venv/bin:$PATH"
# Define the command to run the app
CMD ["lualatex", "label.tex"]
Este es mi archivo label.tex. Verás que tengo tres instancias de psbarcode
pero solo la primera arroja tikzpicture
el error:
\documentclass{article}
\usepackage{fontspec}
\setlength\parindent{0pt}
\usepackage{pst-barcode}
\usepackage{phonetic}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{tikz}
\geometry{paperwidth=4in, paperheight=2in, top=-0.5in, bottom=0.125in, left=0.125in, right=0.125in}
\renewcommand{\textsuperscript}[1]{\raisebox{0.8ex}{\scalebox{0.66}{#1}}}
\begin{document}
\fontsize{7pt}{8pt}\selectfont
\textbf{Company{\sffamily\textregistered} Product\\
Designed by Company\\
Assembled in USA\\
Model MP1
}
\begin{figure}
\begin{tikzpicture}[overlay, remember picture]
\node[xshift=-1.5in,yshift=-0.45in] at (current page.north east) {\psbarcode{196852002825}{includetext width=1.3 height=0.35 textsize=9 textyoffset=-2 textxoffset=-6}{upca}};
\end{tikzpicture}
\end{figure}
\vspace{0.075in}
\textbf{(A) Serial No. A12345678\\
}
\begin{pspicture}(0,0.35in)
\psbarcode{A12345678}{width=0.31 height=0.31}{qrcode}
\end{pspicture}
\vspace{0.075in}
\textbf{(B) Serial No. B12345678\\
}
\begin{pspicture}(0,0.35in)
\psbarcode{B12345678}{width=0.31 height=0.31}{qrcode}
\end{pspicture}
\vfill
\mbox{}\hfill \textbf{\textcopyright 2024 Company All rights reserved.}
\end{document}
Este es mi error:
[1 ! luapstricks: Se produjo un error "invalidfont" al ejecutar el código PS desde "./labe l-docker.tex:29". ...no:N \tex_shipout:D
\box_use:N \l_shipout_box
_envío_drop_firstpage...l.60 \end{documento}
? ! Parada de emergencia. ...no:N \tex_shipout:D \box_use:N \l_shipout_box
_envío_drop_firstpage...l.60 \end{documento}. 5544 palabras de memoria de nodo todavía en uso: 80 hlist, 14 vlist, 1 regla, 14 disco, 10 local_par, 1 dir, 182 pegamento, 41.
kern, 43 penalización, 271 glifo, 90 atributo, 57 pegamento_spec, 90. atributo_list, 1 temp, 2 if_stack, 4 write, 2 save_pos, 18 late_lua,
34 pdf_literal, 14 pdf_colorstack listas de disponibilidad de nodos: 2:3,5:2,10:4
. ==> ¡Ocurrió un error fatal, no se produjo ningún archivo PDF de salida!