Dieser Artikel ist bereits über 3 Jahre alt. Die Inhalte sind wahrscheinlich bereits überholt und nicht mehr aktuell.

Wer regelmäßig LaTeX Dokumente schreibt und nicht auf jedem Gerät eine vollständige Tex Live Installation bereithalten will, kann seine Dokumente bequem mittels GitLab CI und einem entsprechenden Docker Image bauen lassen. Damit sind Änderungen nicht nur am lokalen PC, sondern auch in der Web-Oberfläche und am Smartphone einfach durchzuführen und das Ergebnis kann direkt als PDF-Datei betrachtet und heruntergeladen werden.

Die einzigen Voraussetzungen für die Verwendung dieser Anleitung sind eine GitLab-Installation (neben einer selbst-gehosteten Instanz kann auch die öffentliche Instanz verwendet werden) und ein GitLab CI Runner.

LaTeX Docker Image

Das entsprechende Docker-Image mit einer vollständigen Tex Live Installation auf Basis von Debian 10 (“Buster”) können Sie entweder direkt aus dem Docker Hub beziehen oder auch durch GitLab CI für die eigene Registry bauen lassen. Für den letzteren Fall finden Sie den Inhalt der dazu notwendigen Dateien .gitlab-ci.yml und Dockerfile hier:

.gitlab-ci.yml:

image: docker:latest

variables:
  REGISTRY_URL: "my-docker-registry.com"
  PROJECT_GROUP: "docker"
  PROJECT_NAME: "latex"

build:
  stage: build
  services:
    - docker:dind
  only:
    - master
  script:
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $REGISTRY_URL
    - docker build -t $REGISTRY_URL/$PROJECT_GROUP/$PROJECT_NAME .
    - docker push $REGISTRY_URL/$PROJECT_GROUP/$PROJECT_NAME

Dockerfile:

FROM debian:buster

RUN apt-get update && \
    apt-get install -y texlive-full && \
    apt-get purge -y *-doc && \
    apt-get clean -y && \
    rm -rf /var/lib/apt/lists/*

LaTeX Dokumente bauen

Im Anschluss benötigt das Repository mit den LaTeX-Daten noch eine simple .gitlab-ci.yml Datei, durch welche das fertige PDF erzeugt wird. Diese sieht folgendermaßen aus:

image: marvinmenzerath/latex

build:
  stage: build
  artifacts:
    paths:
      - main.pdf
  script:
    - latexmk -pdf main.tex

Hier können natürlich auch ein von Ihnen gebautes Docker Image oder pdflatex statt latexmk verwendet werden.

Anschließend wird GitLab CI das Docker Image herunterladen, das LaTeX Dokument bauen und das fertige PDF als Artefakt abspeichern. Dieses können Sie dann direkt betrachten oder herunterladen.