KNELPDF v1: pandoc 3.11 + texlive xetex/luatex on pinned bookworm

Fleet document-generation image. DejaVu/Noto fonts for unicode +
box-drawing. Remote push + cross-links queued (gitea incident #937).
This commit is contained in:
TSYS Group COO
2026-09-07 16:33:54 -05:00
commit e4887f7609
4 changed files with 85 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
*.pdf
*.aux
*.log
*.out
*.toc
+30
View File
@@ -0,0 +1,30 @@
# KNELPDF - TSYS Group fleet document-generation image.
# pandoc + texlive (xetex/luatex) + DejaVu/Noto fonts (box-drawing + wide unicode).
# Rebuild = bump the version pins, never float.
FROM debian:bookworm-slim@sha256:88200866dfff7ea7f5cbcb6ec7c8a701889efe6fe859fe64d6990e4b07ea4171
ARG PANDOC_VERSION=3.11
ARG PANDOC_DEB=pandoc-3.11-1-amd64.deb
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
texlive-latex-base \
texlive-latex-recommended \
texlive-latex-extra \
texlive-xetex \
texlive-luatex \
texlive-fonts-recommended \
lmodern \
fonts-dejavu \
fonts-noto-core \
&& curl -fsSL -o /tmp/pandoc.deb \
"https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/${PANDOC_DEB}" \
&& dpkg -i /tmp/pandoc.deb \
&& rm -f /tmp/pandoc.deb \
&& rm -rf /var/lib/apt/lists/*
# Fleet rule: NO ENTRYPOINT - keeps `sh -c` composition working.
CMD ["pandoc", "--version"]
+44
View File
@@ -0,0 +1,44 @@
# KNELPDF
Fleet document-generation image: **pandoc + texlive (xetex/luatex) + DejaVu
and Noto fonts**, built for the TSYS Group agent fleet. Runs markdown → PDF
with full unicode support (box-drawing org charts, tables, code blocks).
## Status
- Built locally as `knelpdf:v1` on the COO workstation (2026-09-07).
- **Remote not yet created** — Gitea pushes are blocked by the
2026-09-07 box incident (gitea receive-pack 500s, see Redmine #937).
When infra recovers: create repo `KNEL/KNELPDF` on
git.knownelement.com, push, and cross-link the Redmine ticket +
Discourse doc here (links land at birth per house rules).
## Usage
```sh
# markdown -> PDF (xelatex engine, landscape, DejaVu mono keeps box-drawing)
docker run --rm -v "$PWD:/data" knelpdf:v1 \
pandoc /data/input.md -o /data/output.pdf \
--pdf-engine=xelatex \
-V geometry:landscape -V geometry:margin=2cm \
-V mainfont="DejaVu Sans" -V monofont="DejaVu Sans Mono"
```
The image has NO entrypoint (fleet rule) — invoke tools directly:
`pandoc`, `xelatex`, `lualatex`.
## Version policy (bump on rebuild, never float)
| Component | Pinned at |
|---|---|
| Base | `debian:bookworm-slim@sha256:88200866…` (digest in Dockerfile) |
| pandoc | 3.11 (`pandoc-3.11-1-amd64.deb` from GitHub releases) |
| texlive | Debian bookworm archive (pulled at build time, pinned by base digest) |
| Image tag | `knelpdf:vN``:latest` is forbidden by house rules |
## Contents
- texlive-latex-base / recommended / extra
- texlive-xetex, texlive-luatex, texlive-fonts-recommended, lmodern
- fonts-dejavu (mono has box-drawing glyphs), fonts-noto-core
- curl + ca-certificates
Executable
+6
View File
@@ -0,0 +1,6 @@
#!/bin/sh
# Build the KNELPDF image. Usage: ./build.sh [tag] (default tag: v1)
set -eu
TAG="${1:-v1}"
docker build -t "knelpdf:${TAG}" .
echo "built knelpdf:${TAG}"