diff --git a/Dockerfile b/Dockerfile index 26a0052..91c3083 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,9 @@ RUN adduser --system --uid 1001 nextjs COPY --from=builder /app/public ./public COPY --from=builder /app/prisma ./prisma +# Copy node_modules for prisma CLI (needed for migrations) +COPY --from=deps /app/node_modules ./node_modules + # Set the correct permission for prerender cache RUN mkdir .next RUN chown nextjs:nodejs .next @@ -44,6 +47,10 @@ RUN chown nextjs:nodejs .next COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static +# Copy entrypoint script +COPY --chown=nextjs:nodejs docker-entrypoint.sh ./ +RUN chmod +x docker-entrypoint.sh + USER nextjs EXPOSE 3000 @@ -51,4 +58,4 @@ EXPOSE 3000 ENV PORT=3000 ENV HOSTNAME="0.0.0.0" -CMD ["node", "server.js"] +ENTRYPOINT ["./docker-entrypoint.sh"] diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..7277f44 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +echo "Running database migrations..." +npx prisma migrate deploy + +echo "Starting application..." +exec node server.js