From 91901a66d97a5775d79bee90309385c11ebe8df4 Mon Sep 17 00:00:00 2001 From: elpatron Date: Mon, 12 Jan 2026 22:15:33 +0100 Subject: [PATCH] fix: improve docker deployment stability and ensure prisma migrations run in production --- Dockerfile | 22 ++++++++++++++-------- docker-compose.yml | 2 ++ package.json | 6 +++--- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index f494caf..b027187 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,30 +17,36 @@ RUN npm run build FROM node:20-alpine AS runner WORKDIR /app +# Set production environment ENV NODE_ENV=production ENV PORT=3000 ENV DATABASE_URL="file:/app/data/dev.db" # Install production dependencies only COPY package*.json ./ -COPY prisma ./prisma/ RUN npm install --omit=dev # Copy build artifacts and necessary files COPY --from=builder /app/.next ./.next COPY --from=builder /app/public ./public COPY --from=builder /app/next.config.mjs ./ -COPY --from=builder /app/next.config.ts ./ -# Optional: if you have next-pwa and custom worker files -# COPY --from=builder /app/public/sw.js ./public/ - -# Copy prisma for migrations at runtime +COPY --from=builder /app/prisma ./prisma COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma COPY --from=builder /app/node_modules/@prisma ./node_modules/@prisma -# Script to run migrations and start the app +# Ensure data directory exists RUN mkdir -p /app/data -RUN printf "#!/bin/sh\nnpx prisma migrate deploy\nnpm start" > /app/start.sh + +# Script to run migrations and start the app +RUN printf "#!/bin/sh\n\ + set -e\n\ + echo \"Starting initialization...\"\n\ + echo \"Database URL: \$DATABASE_URL\"\n\ + echo \"Running migrations...\"\n\ + npx prisma migrate deploy\n\ + echo \"Starting application...\"\n\ + npm start" > /app/start.sh + RUN chmod +x /app/start.sh EXPOSE 3000 diff --git a/docker-compose.yml b/docker-compose.yml index ae32597..4da9852 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,8 @@ services: build: . ports: - "3000:3000" + environment: + - DATABASE_URL=file:/app/data/dev.db volumes: - ./data:/app/data restart: always diff --git a/package.json b/package.json index 6799c2e..ea44553 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,8 @@ "react-hook-form": "^7.71.0", "sonner": "^2.0.7", "tailwind-merge": "^3.4.0", - "zod": "^4.3.5" + "zod": "^4.3.5", + "prisma": "^6.19.1" }, "devDependencies": { "@tailwindcss/postcss": "^4", @@ -40,9 +41,8 @@ "babel-plugin-react-compiler": "1.0.0", "eslint": "^9", "eslint-config-next": "16.1.1", - "prisma": "^6.19.1", "tailwindcss": "^4", "tw-animate-css": "^1.4.0", "typescript": "^5" } -} +} \ No newline at end of file