From f981f1fe4cfb0a758540726bbccf86f228d840a1 Mon Sep 17 00:00:00 2001 From: Kunthawat Greethong Date: Thu, 30 Apr 2026 15:00:29 +0700 Subject: [PATCH] fix: run emdash seed only on first launch via entrypoint.sh - Remove emdash seed from Dockerfile build stage (no longer overwrites DB) - Add entrypoint.sh that checks if data.db exists before seeding - First launch: seed runs to populate DB - Subsequent redeploys: DB exists, seed skipped, data preserved - Also remove COPY data.db from runner stage (volume mount handles persistence) Co-Authored-By: Claude Opus 4.6 --- Dockerfile | 9 ++++++--- entrypoint.sh | 10 ++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 8195efc..d655b76 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . -RUN pnpm build && pnpm exec emdash init && pnpm exec emdash seed && mkdir -p uploads +RUN pnpm build && pnpm exec emdash init && mkdir -p uploads FROM deps AS runner @@ -26,8 +26,11 @@ ENV HOST=0.0.0.0 COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/dist ./dist -COPY --from=builder /app/data.db ./data.db +COPY --from=builder /app/uploads ./uploads EXPOSE 4321 -CMD ["node", "./dist/server/entry.mjs"] +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..035e2e8 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# Only seed on first launch (when data.db doesn't exist) +if [ ! -f data.db ]; then + echo "Database missing, running emdash init & seed..." + pnpm exec emdash init + pnpm exec emdash seed +else + echo "Database exists, starting normally..." +fi +exec node ./dist/server/entry.mjs \ No newline at end of file