From f4c2435ddc8cbbf9b9252dd8c98e5ebf29164257 Mon Sep 17 00:00:00 2001 From: Sean O'Connor Date: Sun, 10 May 2026 21:48:21 -0400 Subject: [PATCH] fix: run db:migrate at container startup instead of build time Migration now runs at container start (when DB is available) rather than during the build stage (when no DB is reachable). The release image now includes node_modules, drizzle.config.ts, and the drizzle/ folder so drizzle-kit can apply pending migrations on each deploy. Co-Authored-By: Claude Sonnet 4.6 --- Dockerfile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 07ea750..6bb9eca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,7 @@ ENV NODE_ENV=production \ BETTER_AUTH_URL=http://localhost:3000 \ AUTH_SECRET=docker-build-placeholder-secret-do-not-use \ DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres -RUN bun run build && bun build src/server/db/migrate.ts --target=bun --outfile=migrate.js +RUN bun run build FROM base AS release ENV NODE_ENV=production \ @@ -26,11 +26,13 @@ ENV NODE_ENV=production \ COPY --from=build /usr/src/app/.next/standalone ./ COPY --from=build /usr/src/app/.next/static ./.next/static COPY --from=build /usr/src/app/public ./public -COPY --from=build /usr/src/app/migrate.js ./migrate.js +COPY --from=install /usr/src/app/node_modules node_modules +COPY --from=build /usr/src/app/package.json ./package.json +COPY --from=build /usr/src/app/drizzle.config.ts ./drizzle.config.ts COPY --from=build /usr/src/app/drizzle ./drizzle -RUN chmod -R a+rX drizzle migrate.js public +RUN chmod -R a+rX drizzle public USER bun EXPOSE 3000 -CMD ["sh", "-c", "bun migrate.js && bun server.js"] +CMD ["sh", "-c", "bun run db:migrate && bun server.js"]