erro de compilação pdflatex no trabalho CI, mas não no shell interativo

erro de compilação pdflatex no trabalho CI, mas não no shell interativo

Recebo um erro ao compilar meu documento dentro de um contêiner docker do Ubuntu 22.04 durante um trabalho de CI do Gitlab:

!pdfTeX error: /usr/bin/pdflatex (file tcrm1000): Font tcrm1000 at 600 not found
==> Fatal error occurred, no output PDF file produced!

O mais estranho é que se eu iniciar o contêiner manualmente e depois compilar o documento, não recebo nenhum erro. Eu precisaria de mais informações sobre o que pode gerar o erro acima (por exemplo, variáveis ​​de ambiente?) Para solucioná-lo.

Editar: inspecionando os logs da compilação com falha com mais cuidado, descobri isto:

kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 tcrm1000
mktexpk: /usr/share/texlive/texmf-dist/web2c/mktexdir ./.texlive2021/texmf-var/fonts/pk/ljfour/jknappen/ec failed.
kpathsea: Appending font creation commands to missfont.log.

Para a execução manual bem-sucedida, recebo:

kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 tcrm1000
mktexpk: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1+0/600; nonstopmode; input tcrm1000
This is METAFONT, Version 2.71828182 (TeX Live 2022/dev/Debian) (preloaded base=mf)
. . . 

Parece que esse pode ser o principal erro, mas não entendo porque isso acontece apenas com CI.

Responder1

Encontrei o problema: falta a definição da variável de ambiente HOME no shell gerado pelo CI. Isso leva a uma expansão incorreta de ~ no TEXMFVAR definido em texmf.cnf (que no meu sistema é ~/.texlive2021/texmf-var) e, por sua vez, a um nome incorreto para a pasta que o script mktexdir tenta criar. Tudo isso não aconteceu para a compilação manual, pois eu estava fazendo isso em um shell interativo dentro do mesmo contêiner, e para esse shell o HOME foi definido corretamente.

Consegui consertar adicionando esta linha:

- export HOME=/root

ao script CI antes da chamada para pdflatex.

informação relacionada