
raabf/latex-versionsDockerTeX 与 DockerTeXstudio 是提供多版本TeX Live环境的Docker镜像,基于Debian和Ubuntu系统构建,包含完整的LaTeX包(texlive-full)及常用配套工具(如biber、make、gnuplot等)。DockerTeX提供命令行LaTeX环境,DockerTeXstudio在此基础上集成TeXstudio GUI编辑器,支持直接连接本地X服务器运行,适用于本地文档编辑和持续集成(CI)场景,确保跨环境LaTeX文档编译的一致性。
texlive2016)或发行版代号(如jessie)指定。texlive-full包,涵盖几乎所有常用LaTeX模块,无需额外安装基础组件。armhf-texlive2016),适配不同硬件环境。可通过TeX Live版本或发行版代号指定镜像标签,主要标签信息如下:
| TeX Live版本 | Docker标签 | 发行版 | 发行版Docker标签 | 说明(LaTeX/ARM LaTeX/TeXstudio Dockerfile及信息) | 备注 |
|---|---|---|---|---|---|
| 2012 | texlive2012 | Debian | wheezy | LaTeX Dockerfile、TeXstudio Dockerfile | EOL²;最后支持的TeXstudio版本¹:2.12.10-2 |
| 2013 | texlive2013 | Ubuntu | trusty | LaTeX Dockerfile、TeXstudio Dockerfile | EOL²;最后支持的TeXstudio版本¹:2.12.14-1 |
| 2014 | texlive2014 | Debian | jessie | LaTeX/ARM LaTeX Dockerfile、TeXstudio Dockerfile | EOL²;最后支持的TeXstudio版本¹:2.12.14-1 |
| 2015 | texlive2015 | Ubuntu | xenial | LaTeX/ARM LaTeX Dockerfile、TeXstudio Dockerfile | EOL²;最后支持的TeXstudio版本¹:2.12.22-1 |
| 2016 | texlive2016 | Debian | stretch | LaTeX/ARM LaTeX Dockerfile、TeXstudio Dockerfile | armhf/latest、arm64/latest标签;最后支持的TeXstudio版本¹:3.1.2 |
| 2017 | texlive2017 | Ubuntu | bionic | LaTeX/ARM LaTeX Dockerfile、TeXstudio Dockerfile | - |
| 2018 | texlive2018 | Debian | buster | LaTeX/ARM LaTeX Dockerfile、TeXstudio Dockerfile | - |
| 2019 | texlive2019 | Ubuntu | focal | LaTeX/ARM LaTeX Dockerfile、TeXstudio Dockerfile | - |
| 2020 | texlive2020 | Debian | bullseye | LaTeX/ARM LaTeX Dockerfile、TeXstudio Dockerfile | - |
| 2021 | texlive2021 | Ubuntu | jammy | LaTeX/ARM LaTeX Dockerfile、TeXstudio Dockerfile | latest标签 |
| 2022 | texlive2022 | Debian | bookworm | LaTeX/ARM LaTeX Dockerfile、TeXstudio Dockerfile | testing标签(开发中) |
¹ TeXstudio不再为该Linux发行版提供构建,容器使用最后可用版本;² 发行版已终止支持(EOL),无更新但镜像仍可使用。
需安装Docker或Podman CLI。DockerTeXstudio镜像包含DockerTeX所有功能,若已安装DockerTeXstudio,DockerTeX会自动使用其镜像以节省磁盘空间。首次使用时,工具会提示拉取所需镜像。
用于在容器中运行LaTeX命令,挂载当前工作目录并保持文件所有权。
bashdockertex [-t|--tag 标签名] 命令
编译document.tex(使用TeX Live 2016):
bashdockertex --tag texlive2016 pdftex document.tex
使用Makefile编译(使用Debian Jessie发行版对应的TeX Live版本):
bashdockertex --tag jessie make all
默认标签:设置DOCKERTEX_DEFAULT_TAG指定默认标签,无需每次使用--tag:
bashexport DOCKERTEX_DEFAULT_TAG="texlive2016"
容器引擎:默认优先使用Podman,若需指定Docker,设置DOCKERTEX_ENGINE:
bashexport DOCKERTEX_ENGINE="docker" # 或 "podman"
用于启动TeXstudio GUI,挂载用户主目录,支持配置持久化、Synctex跳转和LanguageTool集成。
bashdockertexstudio [-t|--tag 标签名] [-v|--volume 映射]* [texstudio选项]
启动TeXstudio(使用最新标签):
bashdockertexstudio --tag latest
挂载额外卷(如将/media/git/映射到容器内/home/git/):
bashdockertexstudio --tag texlive2016 --volume /media/git/:/home/git/
使用x11docker(增强安全性):
bashx11docker --network=host --share $HOME raabf/texstudio-versions:texlive2019
dockertexstudio --help可查看路径。.tex文件(需文件路径内外一致)。使用Docker时若出现“Authorization required, but no authorization protocol specified”,需在宿主执行:
bashxhost local:root
(允许root用户访问本地X服务器)。
若仍有认证问题,可能需要将宿主xauth list生成的令牌传递给容器,参考项目issue。
若提示找不到显示,尝试修改dockertexstudio.sh中的--env='DISPLAY'为-e DISPLAY=unix$DISPLAY。
通过zsh插件管理器(如zplug)安装,可自动更新。支持安装TeXstudio菜单条目。
zplug配置示例
在~/.zshrc中添加:
zshzplug raabf/dockertex, \ from:gitlab, \ hook-build:"./posthook.sh --menu-tag latest --menu-volume /media/ext/=/home/ext/"
--menu-tag指定菜单条目使用的标签,--menu-volume用=替代:指定额外卷映射。
适用于非zsh用户,支持安装CLI和菜单条目。
安装命令(带菜单条目)
bashcurl [***] | bash -s -- --menu-tag latest --menu-volume "/media/ext/:/home/ext/"
系统级安装
bashcurl [***] | bash -s -- --system --menu-tag latest --menu-volume /media/ext/:/home/ext/
复制CLI脚本到PATH目录:
bashsudo cp bin/dockertex.sh /usr/local/bin/dockertex sudo cp bin/dockertexstudio.sh /usr/local/bin/dockertexstudio chmod a+x /usr/local/bin/dockertex*
复制TeXstudio图标:
bashcp misc/icons/hicolor/scalable/apps/texstudio.svg /usr/local/share/icons/hicolor/scalable/apps/
创建菜单条目:
bashcp misc/dockertexstudio.desktop /usr/local/share/applications/dockertexstudio-stretch.desktop echo "Name=Docker TexStudio (stretch) Exec=/usr/local/bin/dockertexstudio --tag latest %F Icon=/usr/local/share/icons/hicolor/scalable/apps/texstudio.svg" >> /usr/local/share/applications/dockertexstudio-stretch.desktop
注册Runner:在安装Docker的服务器上注册Runner,选择docker执行器:
bashsudo gitlab-runner register --url [***] --executor "docker" --tag-list "docker, latex, dockertex" --docker-image "raabf/latex-versions:latest"
配置.gitlab-ci.yml:
yaml--- stages: - latex before_script: - lsb_release --all - latex --version make_texlive2016: image: raabf/latex-versions:texlive2016 stage: latex tags: - docker script: - make all artifacts: paths: - ./thesis.pdf expire_in: 1 week make_texlive2017: image: raabf/latex-versions:texlive2017 stage: latex tags: - docker script: - make all artifacts: paths: - ./thesis.pdf expire_in: 1 week
上述配置在不同TeX Live版本下编译文档,生成
thesis.pdf作为制品并保留1周。
项目托管于GitLab,欢迎通过issues反馈问题或提交贡献。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务