diff --git a/Dockerfile b/Dockerfile index b05f530..04342ed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,8 +44,9 @@ ENV PORT=3000 ENV HOSTNAME="0.0.0.0" COPY docker-entrypoint.sh /entrypoint.sh +COPY docker-start.sh /start.sh RUN apt-get update -y && apt-get install -y gosu && rm -rf /var/lib/apt/lists/* \ - && chmod +x /entrypoint.sh + && chmod +x /entrypoint.sh /start.sh ENTRYPOINT ["/entrypoint.sh"] -CMD ["sh", "-c", "npx prisma migrate deploy && node server.js"] +CMD ["/start.sh"] diff --git a/docker-start.sh b/docker-start.sh new file mode 100644 index 0000000..d3abf52 --- /dev/null +++ b/docker-start.sh @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +# Run migrations; if P3005 (schema not empty, no migration history), baseline then retry +if ! npx prisma migrate deploy 2>/dev/null; then + echo "Migration failed, attempting baseline (P3005 fix)..." + for dir in /app/prisma/migrations/*/; do + [ -d "$dir" ] || continue + name=$(basename "$dir") + npx prisma migrate resolve --applied "$name" 2>/dev/null || true + done + npx prisma migrate deploy +fi + +exec node server.js