Files
llmrouter/docker/Dockerfile
T
elton 1f99b73161 Docker-Image, Compose-Demo mit ./data-Mount
Alle Laufzeitdateien (config, ACLs, keys, state, aa-cache, log) gehen über
den Mount ./data:/data, weil logDir und ACLs relativ zum CONFIG_PATH
aufgelöst werden. Ohne Keys startet der Router trotzdem, /health bleibt
bedienbar.
2026-09-08 09:48:13 +02:00

21 lines
789 B
Docker

# llmrouter — ein Image, keine Abhängigkeiten (package.json hat keine deps).
# oven/bun:1 ist Debian-basiert und bringt bun mit; der Router läuft darin
# direkt aus den Quellen (kein Build-Schritt nötig).
FROM oven/bun:1
WORKDIR /app
# Mitgelieferte Demo-Konfiguration: greift nur, wenn LLMROUTER_CONFIG nicht
# gesetzt ist (Compose überschreibt sie mit /data/config.json).
COPY package.json ./
COPY src ./src
COPY config.json key-acls.json ./
EXPOSE 4010
# /health braucht keine Keys; der Router lauscht auch ohne Secret-Umfeld.
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD bun -e 'const p = Number(process.env.PORT ?? 4010); const r = await fetch("http://127.0.0.1:" + p + "/health"); process.exit(r.ok ? 0 : 1)'
CMD ["bun", "src/server.ts"]