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.
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
# 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"]
|
||||
Reference in New Issue
Block a user