从 Docker 镜像中的 CTAN 镜像进行可靠安装

从 Docker 镜像中的 CTAN 镜像进行可靠安装

我正在尝试使用 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`。请注意,反引号很重要,否则命令将不起作用。

相关内容