LaTeX Docker Builder

Docker-Image und Build-Umgebung zum plattformunabhängigen, reproduzierbaren Kompilieren von LaTeX-Dokumenten (wie der Seminararbeit oder Masterthesis an der Fachhochschule Burgenland).


Inhaltsverzeichnis


Voraussetzungen

  • Docker Desktop (oder Docker Engine unter Linux) läuft auf Ihrem System.
  • Keine lokale TeX-Live- oder MiKTeX-Installation auf dem Host erforderlich!

Schnellstart

1. PowerShell (Windows)

Das mitgelieferte Skript build-seminar.ps1 vereinfacht alle Abläufe:

# Seminararbeit kompilieren
.\build-seminar.ps1

# Bereinigen (löscht temporäre Dateien im out/-Ordner)
.\build-seminar.ps1 -Clean

# Kontinuierlicher Watch-Modus (baut bei jeder Dateiänderung neu)
.\build-seminar.ps1 -Watch

# Anderes Dokument kompilieren
.\build-seminar.ps1 -File "meinDokument.tex"

2. Bash / Linux / macOS / WSL

# Ausführbar machen
chmod +x build-seminar.sh

# Kompilieren
./build-seminar.sh

# Bereinigen
./build-seminar.sh ../Seminar_Arbeit_BITI_Gruber clean

# Watch-Modus
./build-seminar.sh ../Seminar_Arbeit_BITI_Gruber watch

3. Docker Compose

# Bauen
docker compose run --rm builder

# Bereinigen
docker compose run --rm clean

# Watch-Modus
docker compose run --rm watch

4. Reines Docker CLI

Direkt ohne Hilfsskripte:

# Windows PowerShell:
docker run --rm -v "${PWD}/../Seminar_Arbeit_BITI_Gruber:/workspace" -w /workspace latex-docker:latest

# Linux / macOS / WSL:
docker run --rm -v "$(pwd)/../Seminar_Arbeit_BITI_Gruber:/workspace" -w /workspace latex-docker:latest

Beliebige LaTeX-Befehle übergeben:

# Bereinigen
docker run --rm -v "${PWD}/../Seminar_Arbeit_BITI_Gruber:/workspace" latex-docker:latest clean

# Spezifischen latexmk-Befehl ausführen
docker run --rm -v "${PWD}/../Seminar_Arbeit_BITI_Gruber:/workspace" latex-docker:latest latexmk -pdf seminararbeit.tex

5. Makefile

make image    # Image bauen
make build    # Seminararbeit kompilieren
make clean    # Temporäre Dateien löschen
make watch    # Kontinuierlich bauen
make shell    # Interaktive Bash-Shell im Container öffnen

Image selbst bauen

Das Image lokal bauen und mit Tags versehen:

docker build -t latex-docker:latest -t git.djnizz.at/nizz05/latex-docker:latest .

Git Remote & Image Registry

Code ins Git-Repo pushen

Der Ordner ist bereits mit der Remote-URL https://git.djnizz.at/Nizz05/latex-docker.git verknüpft:

git add .
git commit -m "feat: Initial commit of latex docker builder environment"
git push -u origin main

Image zur Registry pushen (optional)

Falls Ihre Gitea/Forgejo-Instanz die Docker-Container-Registry aktiviert hat:

docker login git.djnizz.at
docker push git.djnizz.at/nizz05/latex-docker:latest

Beispiel für CI/CD (Gitea Actions / Woodpecker)

Gitea / GitHub Actions (.gitea/workflows/build.yml)

name: Build Seminararbeit

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    container:
      image: texlive/texlive:latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Compile LaTeX
        run: |
          latexmk -pdf seminararbeit.tex

      - name: Upload PDF Artifact
        uses: actions/upload-artifact@v4
        with:
          name: seminararbeit-pdf
          path: out/seminararbeit.pdf
S
Description
No description provided
Readme
46 KiB
Languages
PowerShell 45.5%
Shell 35.1%
Makefile 10.6%
Dockerfile 8.8%