diff --git a/compose.yaml b/compose.yaml index 9502a69..4c3b937 100644 --- a/compose.yaml +++ b/compose.yaml @@ -2,7 +2,7 @@ # Ablage: /opt/stacks/afis/compose.yaml, .env im eigenen Dockge-Reiter. # Begründung der Entscheidungen in docs/11-betrieb.md: # - keine Einmal- und keine Init-Container, Dockge zeigt beendete Container nicht -# - Migrationen laufen im Startkommando von `web` +# - Migration und Seed laufen im Startkommando von `web` # - jeder Dienst hat einen Healthcheck, das ist in Dockge die Statusanzeige # - kein Reverse Proxy im Stack: TLS macht ein Proxy davor # @@ -33,7 +33,11 @@ services: restart: unless-stopped # Die Migration läuft im Startkommando, nicht in einem Init-Container. # Die Prisma-CLI liegt im Image unter /app/migrator, es wird nichts nachgeladen. - command: sh -c "cd /app/migrator && node node_modules/prisma/build/index.js migrate deploy && cd /app && node web/server.js" + command: > + sh -c "cd /app/migrator + && node node_modules/prisma/build/index.js migrate deploy + && node node_modules/tsx/dist/cli.mjs prisma/seed.ts + && cd /app && node web/server.js" env_file: .env environment: NODE_ENV: production diff --git a/docker/web.Dockerfile b/docker/web.Dockerfile index a7f2073..037e3f4 100644 --- a/docker/web.Dockerfile +++ b/docker/web.Dockerfile @@ -45,9 +45,18 @@ ENV NEXT_TELEMETRY_DISABLED=1 RUN pnpm --filter @afis/web build # Eigenständige Migrations-CLI mit heruntergeladener Schema-Engine. +# Dazu der Seed: er legt den Grundzustand an - Freigabestufen, Status-Etiketten, +# Fallarten, Nummernkreise. Ohne ihn startet die Anwendung zwar, aber es laesst +# sich keine Akte anlegen, weil es keine Vorlage gibt. Er besteht ausschliesslich +# aus upserts und darf deshalb bei jedem Start mitlaufen. RUN mkdir -p /migrator && cd /migrator && \ - npm install --no-package-lock --no-audit --no-fund "prisma@${PRISMA_VERSION}" && \ + npm install --no-package-lock --no-audit --no-fund \ + "prisma@${PRISMA_VERSION}" \ + "@prisma/client@${PRISMA_VERSION}" \ + "@prisma/adapter-pg@${PRISMA_VERSION}" \ + pg tsx && \ cp -r /repo/packages/db/prisma /migrator/prisma && \ + cp -r /repo/packages/db/src /migrator/src && \ cp /repo/packages/db/prisma.config.ts /migrator/prisma.config.ts # --- Laufzeit -----------------------------------------------------------------