当我使用 GitHub Actions 构建用 LaTeX 编写的简历时,似乎没有错误,但是,当我在本地运行构建时,我遇到了数千个错误,如问题标题中的错误。 (都使用 Docker)。
可能是什么问题?我已经尝试在 /tmp 上安装 tmpfs 以查看是否可以解决问题,但没有帮助。
docker run --interactive --tty --rm --name texlive \
--user $(shell id -u):$(shell id -g) \
--volume $(shell pwd):/home \
--mount type=tmpfs,destination=/tmp \
--workdir /home \
texlive/texlive xelatex *.tex
区别在于您在容器中使用的用户。
我想您不必费心在构建服务器上设置用户
-u
,因此它作为默认值运行,将HOME
设置为可能可以写入的目录。但是当您在本地运行它时,您给它您的用户 ID,但它没有设置 HOME
。
尝试添加
--env HOME=/home
选项,然后它应该将缓存写入项目目录。
我的首选解决方案是在容器中安装 libnss-unknown,在 Dockerfile 中设置
ENV HOME=/home
,并使 /home
目录可全局写入。然后,无论您传递什么 -u
选项,您都会为任何需要它的程序提供可写的主页。但这意味着您必须制作自己的定制容器。无论如何,我经常最终需要一个,因为我需要一些额外的包裹。