我正在尝试使用 texlive 创建 Docker 映像,它不像 那样占用超过 4G 的空间docker.io/texlive/texlive
。从 Debian 源安装例如不会构建,因为一旦您想要添加某些软件包(例如tlmgr install cleveref
),现在它只会说:
tlmgr:本地 TeX Live(2020)比远程存储库(2021)旧。
因为 CTAN 镜像已更新到 2021,但 Debian 还没有。
所以我正在尝试安装推荐的方法使用install-tl-unx.tar.gz
,但这也不断失败,因为无法访问 CTAN 镜像。以下是 Dockerfile 的最小示例:
FROM alpine:latest
RUN apk add perl
RUN wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz; \
tar -xzf install-tl-unx.tar.gz;
RUN cd install-tl-* ; \
perl ./install-tl
它失败了,说无法联系 mirror.ctan.org,尽管一秒钟之前它刚从同一个站点下载了安装程序:
query_ctan_mirror: Programs not set up, trying wget
Loading http://www.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb
cannot contact mirror.ctan.org, returning a backbone server!
./install-tl: TLPDB::from_file could not initialize from: http://www.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb
./install-tl: Maybe the repository setting should be changed.
./install-tl: More info: https://tug.org/texlive/acquire.html
我们甚至可以强制使用该服务器,并使用以下--location
参数强制使用 HTTPS:
RUN cd install-tl-*; \
perl ./install-tl --location https://mirror.ctan.org/systems/texlive/tlnet
还是一样,无法访问服务器。我还尝试了其他镜像,我测试了它们是否可以在浏览器中使用,但都不起作用。
所以我想知道我需要做什么才能使该安装可靠地运行,以便它可以在 CI 作业中运行。
答案1
对于那些寻找在基于 Alpine 的 Docker 容器中安装来自 CTAN 的 texlive 的方法的人,请查看此存储库kjarosh/latex-docker。
该 repo 包含一个 Dockerfile,它以所需方案之一安装 texlive - minimal
(~40MB)、basic
(~90MB)、small
(~180MB)、medium
(~500MB)、full
(~2GB)。使用basic
方案后,我能够使用pdflatex
命令将源代码编译.tex
成.pdf
文件。
要安装其他软件包,请使用tlmgr install <packagename>
或甚至通过运行从文本文件安装软件包列表tlmgr install `cat texpackages.txt`
。请注意,反引号很重要,否则命令将不起作用。