From 8e69935cf4ff26202e3b901d862bbc6c336e39f9 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Jul 2026 13:06:56 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20DATABASE=5FURL-Platzhalter=20f=C3=BCr=20?= =?UTF-8?q?Build-Zeit=20+=20.dockerignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit prisma.config.ts löst env("DATABASE_URL") beim Laden auf; Coolify reicht die Variable nur als Build-ARG (nicht in process.env) -> 'prisma generate' bricht mit PrismaConfigEnvError ab. Lokal maskiert, weil die lokale .env ins Image kopiert wurde. - builder-Stage: Dummy-DATABASE_URL als ENV (Runtime-Wert aus Coolify-Env überschreibt) - .dockerignore: .env & Co. aus dem Build-Kontext (keine Secrets im Image; bildet die Coolify-Bedingung lokal ab) Verifiziert per Docker-Build ohne .env: prisma generate + next build laufen durch. Co-Authored-By: Claude Opus 4.8 --- .dockerignore | 12 ++++++++++++ Dockerfile | 6 ++++++ 2 files changed, 18 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..cfe3aa4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +.git +node_modules +.next +# Lokale Env-Dateien NICHT ins Image kopieren (Secrets); Build nutzt Build-ENV/Args +.env +.env.* +!.env.example +!.env.coolify.example +*.log +Dockerfile* +docker-compose*.yml +.dockerignore diff --git a/Dockerfile b/Dockerfile index 79abf3e..50bd09f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,12 @@ FROM node:22-alpine AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . +# Platzhalter nur für die Build-Zeit: prisma.config.ts löst env("DATABASE_URL") +# beim Laden auf, und Coolify reicht die Variable nur als Build-ARG rein (nicht in +# process.env). 'prisma generate' und 'next build' (nur dynamische Routen) bauen KEINE +# echte DB-Verbindung auf. Zur Laufzeit überschreibt der echte DATABASE_URL aus der +# Coolify-Env diesen Wert (im migrate-/app-Container). +ENV DATABASE_URL="postgresql://build:build@localhost:5432/build?schema=public" RUN npx prisma generate && npm run build FROM node:22-alpine AS runner