LaTeX Dokumente mit GitLab CI bauen
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.