未找到Docker Alpine Latext texmf dist样式

未找到Docker Alpine Latext texmf dist样式,docker,latex,pandoc,alpine,Docker,Latex,Pandoc,Alpine,我正在尝试向pandoc/latexdocker容器(它本身是在Alpine上构建的)添加一些必要的latext样式文件,而底层的latext到pdf转换无法找到我添加的一些样式文件。这是我的Dockerfile,它添加了我需要的包 FROM pandoc/latex:latest RUN apk --no-cache add texlive-xetex texmf-dist-pictures texmf-dist-latexextra poppler-utils && texh

我正在尝试向
pandoc/latex
docker容器(它本身是在Alpine上构建的)添加一些必要的latext样式文件,而底层的latext到pdf转换无法找到我添加的一些样式文件。这是我的Dockerfile,它添加了我需要的包

FROM pandoc/latex:latest
RUN apk --no-cache add texlive-xetex texmf-dist-pictures texmf-dist-latexextra poppler-utils && texhash
我可以看到我需要的样式文件已安装

$ docker run --rm -it --entrypoint /bin/sh -v $PWD:/data mypandoc:latest 
/data # find / -name tikzpagenodes.sty
/usr/share/texmf-dist/tex/latex/tikzpagenodes/tikzpagenodes.sty
但是,当我尝试进行实际构建时,会出现以下错误

Error producing PDF.
! LaTeX Error: File `tikzpagenodes.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name: 
! Emergency stop.
<read *> 
         
l.103 \usepackage
生成PDF时出错。 ! LaTeX错误:找不到文件“tikzpagenodes.sty”。 键入X退出或继续, 或者输入新名称。(默认扩展名:sty) 输入文件名: ! 紧急停止。 l、 103\n使用软件包
我曾希望在容器构建中调用
texhash
可以解决这个问题,但事实并非如此。将
texmf dist
目录放入搜索路径有什么诀窍吗?问题似乎出在我从
texmf dist
添加的所有样式上,而不仅仅是这一个。谢谢。

使用TeXLive的
tlmgr
安装更多软件包。
pandoc/latex
Docker容器不使用Alpine提供的TeX安装,以便为用户提供更大的灵活性并减小图像大小–Alpine软件包的粒度要小得多

通常,会将以下内容添加到Dockerfile中

# Install additional LaTeX packages
RUN tlmgr update --self && tlmgr install \
  pgf # <list of packages goes here>
#安装其他LaTeX软件包
运行tlmgr更新--self&&tlmgr安装\
pgf#

或者,您可以使用
pandoc/core
图像,使用Alpine系统包构建您自己的乳胶容器。

您是否考虑过继续询问?谢谢。使用
tlmgr
而不是Alpine包最终解决了这个问题。事实证明,这些包安装到与容器中latex安装不同的位置。