MkDocs Image¶
GitHub · ghcr.io/swatpeacekeeper/mkdocs:latest
Vorgefertigtes Image fuer Dokumentations-Builds mit MkDocs. Enthaelt alle Abhaengigkeiten fuer MkDocs Material, LikeC4-Architekturdiagramme und Playwright (fuer LikeC4-Rendering).
Enthaltene Pakete¶
| Komponente | Zweck |
|---|---|
python:3.11-slim |
Basis-Image |
mkdocs |
Statischer Site-Generator |
mkdocs-material |
Material-Theme fuer MkDocs |
mkdocs-include-markdown-plugin |
Markdown-Inhalte aus anderen Dateien einbetten |
mkdocs-likec4 |
LikeC4-Diagramme in MkDocs einbinden |
likec4 (npm) |
LikeC4-CLI fuer Architekturdiagramme |
playwright (Chromium) |
Browser-basiertes Rendering fuer LikeC4-Diagramme |
git, graphviz, nodejs, npm |
Build-Werkzeuge |
Zugang¶
| Image | ghcr.io/swatpeacekeeper/mkdocs:latest |
| Port | 8000 (Dev-Server) |
| Entrypoint | mkdocs |
| Default-CMD | serve --dev-addr=0.0.0.0:8000 |
Lokale Nutzung¶
# Dev-Server starten (Dokumentation live bearbeiten)
docker run --rm -p 8000:8000 -v ${PWD}:/docs \
ghcr.io/swatpeacekeeper/mkdocs:latest
# Statischen Build erzeugen
docker run --rm -v ${PWD}:/docs \
ghcr.io/swatpeacekeeper/mkdocs:latest mkdocs build
# Bestimmte Version pinnen
docker pull ghcr.io/swatpeacekeeper/mkdocs:1.0.0
Nutzung in GitHub Actions¶
- name: Dokumentation bauen
run: |
docker run --rm -v ${{ github.workspace }}:/docs \
ghcr.io/swatpeacekeeper/mkdocs:latest \
mkdocs build
Lokal bauen¶
CI/CD-Pipeline¶
Die Pipeline liegt in .github/workflows/build-mkdocs.yml und laeuft bei:
- Push auf
main(publiziertlatest+ SHA-Tag) - Versioniertem Tag
v*.*.*(publiziert1.2.3,1.2,1,latest) - Pull Requests gegen
mainmit Aenderungen inmkdocs/(Build ohne Push) - Manuellem Trigger (
workflow_dispatch)
Authentifizierung am GHCR erfolgt mit GITHUB_TOKEN (keine externen Secrets noetig).
Dockerfile¶
FROM python:3.11-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
git graphviz nodejs npm \
&& rm -rf /var/lib/apt/lists/*
RUN npm install -g likec4 \
&& npx playwright install --with-deps chromium
RUN pip install --no-cache-dir \
mkdocs \
mkdocs-material \
mkdocs-include-markdown-plugin \
mkdocs-likec4
WORKDIR /docs
EXPOSE 8000
ENTRYPOINT ["mkdocs"]
CMD ["serve", "--dev-addr=0.0.0.0:8000"]
Wartung¶
Images sind nicht exakt versioniert (keine gepinnten Pip/npm-Versionen im Dockerfile). Updates kommen durch manuellen Push oder einen neuen Tag. Renovate-Konfiguration fuer das Basis-Image (python:3.11-slim) ist im Repo aktiv.
Update-Workflow¶
- Dockerfile anpassen (z.B. neues Python-Basisimage)
- Commit auf
mainpushen —latestwird automatisch aktualisiert - Fuer ein versioniertes Release:
git tag v1.2.0 && git push origin v1.2.0