From 1339f42e69b8f6acb98ea5de0a77e26add10f001 Mon Sep 17 00:00:00 2001 From: Beldor Date: Thu, 18 Jun 2026 13:09:25 -0300 Subject: [PATCH] fix: copy prisma.config.ts to runner stage and auto-run migrations on startup Co-Authored-By: Claude Sonnet 4.6 --- Dockerfile | 8 +++++++- entrypoint.sh | 6 ++++++ prisma.config.ts | 8 +++++--- 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 entrypoint.sh diff --git a/Dockerfile b/Dockerfile index d394111..a0e40cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,8 +18,14 @@ COPY --from=builder /app/public ./public COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static COPY --from=builder /app/prisma ./prisma +COPY --from=builder /app/prisma.config.ts ./prisma.config.ts +COPY --from=builder /app/entrypoint.sh ./entrypoint.sh COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma COPY --from=builder /app/node_modules/@prisma ./node_modules/@prisma +COPY --from=builder /app/node_modules/prisma ./node_modules/prisma +COPY --from=builder /app/node_modules/.bin/prisma ./node_modules/.bin/prisma + +RUN chmod +x entrypoint.sh EXPOSE 3000 -CMD ["node", "server.js"] +CMD ["sh", "entrypoint.sh"] diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..cb188b3 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e +echo "Corriendo migraciones..." +node_modules/.bin/prisma migrate deploy +echo "Migraciones OK. Iniciando app..." +exec node server.js diff --git a/prisma.config.ts b/prisma.config.ts index 831a20f..6ff2102 100644 --- a/prisma.config.ts +++ b/prisma.config.ts @@ -1,8 +1,10 @@ -// This file was generated by Prisma, and assumes you have installed the following: -// npm install --save-dev prisma dotenv -import "dotenv/config"; import { defineConfig } from "prisma/config"; +// dotenv only needed for local dev (docker-compose passes env vars directly) +if (process.env.NODE_ENV !== "production") { + await import("dotenv/config").catch(() => {}); +} + export default defineConfig({ schema: "prisma/schema.prisma", migrations: {