5b240159f513f587d6b2306099174a9dcf28399e
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).
- Git-Repository: https://git.djnizz.at/Nizz05/latex-docker.git
- Basis-Image:
texlive/texlive:latest(Vollständige TeX Live Distribution inkl.latexmk,biber,biblatex,koma-script,mathpazo,tikzetc.)
Inhaltsverzeichnis
- Voraussetzungen
- Schnellstart
- Image selbst bauen
- Git Remote & Image Registry
- Beispiel für CI/CD (Gitea Actions / Woodpecker)
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
Languages
PowerShell
45.5%
Shell
35.1%
Makefile
10.6%
Dockerfile
8.8%