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.