Infra: Worker/Garage/Test-Runner
- docker-compose.yml: explizite Build-Targets (runner/migrate) — Ursache für "npx not found" bei garage-provision war das Default-Target (letzte Stage = Garage-Image ohne Node); worker startet npm run worker:mail; Defaults craftvia - Coolify-Compose: incident-inbound-worker und sync-policy-templates entfernt, Rollen-/Bucket-/Image-Namen auf craftvia - Dockerfile: seed/ und docs/wizard-uebergabe entfernt, messages/ im Runner - npm: Name craftvia, Scripts test (scripts/run-tests.ts) und gate, ISMS-Pakete entfernt (handlebars, marked, sanitize-html, @xyflow/react, @dagrejs/dagre, html-to-image, imapflow, mailparser, exceljs, @dnd-kit/core) - .env-Beispiele, launch.json (craftvia-dev), CI-Kommentare umbenannt Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+4
-20
@@ -1,4 +1,4 @@
|
||||
# ISMS-Tool — Next.js App (Multi-Stage-Build)
|
||||
# Craftvia — Next.js App (Multi-Stage-Build)
|
||||
#
|
||||
# Base-Image: node:22-slim (Debian/glibc) statt node:22-alpine (musl).
|
||||
# Begründung (F-11): Mit einem glibc-Base greifen die im Lockfile hinterlegten
|
||||
@@ -57,19 +57,6 @@ COPY package.json package-lock.json prisma.config.ts tsconfig.json ./
|
||||
COPY prisma ./prisma
|
||||
COPY scripts ./scripts
|
||||
COPY src ./src
|
||||
# seed/ trägt das Richtlinien-Vorlagenpaket (mapping.json + Quelldateien), das der
|
||||
# Demo-Seed (prisma/seed.ts) bzw. Bootstrap über importPolicies liest. Ohne diesen COPY
|
||||
# bricht der migrate-Job mit ENOENT auf seed/isms-vorlagenpaket-v2/mapping.json ab.
|
||||
# Einige Quelldateien liegen als 0600 vor → a+rX, damit der non-root app-User sie lesen kann.
|
||||
COPY seed ./seed
|
||||
RUN chmod -R a+rX ./seed
|
||||
# docs/wizard-uebergabe/: Fachcontent-Quelldateien, aus denen der Demo-Seed den
|
||||
# Risikokatalog (C4, import-risks.ts) und die Umsetzungshinweise (C6, import-hints.ts)
|
||||
# liest. Nur im migrate-Image nötig — die Laufzeit/runner ruft diese Importer nicht auf
|
||||
# (importManaged in provision.ts liest keine Dateien). Ohne diesen COPY bricht der
|
||||
# Demo-Seed mit ENOENT auf docs/wizard-uebergabe/.../C6_Umsetzungshinweise.md ab.
|
||||
COPY docs/wizard-uebergabe ./docs/wizard-uebergabe
|
||||
RUN chmod -R a+rX ./docs
|
||||
# Prisma-Client für Seed/Bootstrap generieren (migrate deploy selbst braucht nur schema+migrations).
|
||||
ENV DATABASE_URL="postgresql://build:build@localhost:5432/build?schema=public"
|
||||
RUN npx prisma generate
|
||||
@@ -94,12 +81,9 @@ RUN groupadd --system --gid 1001 app \
|
||||
COPY --from=builder /app/.next/standalone ./
|
||||
COPY --from=builder /app/.next/static ./.next/static
|
||||
COPY --from=builder /app/public ./public
|
||||
# Richtlinien-Vorlagenpaket für den Laufzeit-Import: Modul „policies" aktivieren
|
||||
# (toggleTenantModule), Mandant mit Seed anlegen (createTenant), manueller Paket-Import
|
||||
# (importPolicyPackageForTenant) lesen alle aus seed/isms-vorlagenpaket-v2/. Fehlt es,
|
||||
# wirft die App zur Laufzeit ENOENT. a+rX wegen der 0600-Quelldateien (non-root app-User).
|
||||
COPY seed ./seed
|
||||
RUN chmod -R a+rX ./seed
|
||||
# i18n-Kataloge (messages/<locale>/<namespace>.json) liegen über outputFileTracingIncludes
|
||||
# bereits im standalone-Output; der explizite COPY hält sie auch bei Tracing-Änderungen vor.
|
||||
COPY --from=builder /app/messages ./messages
|
||||
# Backup-/Restore-/DSGVO-Topologie (src/server/backup/topology.ts) liest zur Laufzeit
|
||||
# prisma/schema.prisma: Prisma 7 entfernt relationFromFields aus dem Laufzeit-DMMF,
|
||||
# die FK-Relationen kommen daher aus der Schema-Datei. Der Inline-Export (Direkt-
|
||||
|
||||
Reference in New Issue
Block a user