From 8d7b85e45ddf06187bf8be16beb67e904fc99d13 Mon Sep 17 00:00:00 2001 From: phaichayon Date: Thu, 16 Jul 2026 23:02:27 +0700 Subject: [PATCH] migrate --- Dockerfile | 37 ------------------------------------- Dockerfile.migrator | 31 +++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 37 deletions(-) create mode 100644 Dockerfile.migrator diff --git a/Dockerfile b/Dockerfile index d899244..a47f763 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,43 +41,6 @@ COPY . . RUN npm run build -# ========================================================= -# Migration / Seed image -# -# ใช้ target นี้สำหรับ: -# - npm run migrate -# - npm run seed:master-data -# - npm run seed:super-admin -# ========================================================= -FROM base AS migrator - -ENV NODE_ENV=production -ENV NEXT_TELEMETRY_DISABLED=1 -ENV HUSKY=0 - -COPY --from=deps /app/node_modules ./node_modules -COPY package.json ./ - -# Drizzle configuration -COPY drizzle.config.* ./ - -# Migration files -COPY drizzle ./drizzle - -# Database source code ที่ migration/seed scripts อาจ import -COPY src ./src -COPY scripts ./scripts - -# ถ้าโปรเจกต์ใช้ tsconfig path alias -COPY tsconfig.json ./ - -# ถ้ามีไฟล์ config อื่นที่ scripts ใช้งาน ให้เปิดใช้ตามจริง -# COPY next.config.* ./ -# COPY env.* ./ - -CMD ["npm", "run", "migrate"] - - # ========================================================= # Production Runner # ========================================================= diff --git a/Dockerfile.migrator b/Dockerfile.migrator new file mode 100644 index 0000000..9bb3037 --- /dev/null +++ b/Dockerfile.migrator @@ -0,0 +1,31 @@ +# syntax=docker/dockerfile:1 + +FROM node:20-bookworm-slim + +WORKDIR /app + +ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 +ENV HUSKY=0 + +COPY package.json package-lock.json ./ + +RUN npm ci --no-audit --no-fund + +COPY drizzle.config.* ./ +COPY drizzle ./drizzle +COPY src ./src +COPY scripts ./scripts +COPY tsconfig.json ./ + +CMD ["sh", "-c", "\ + set -e; \ + echo 'Running database migrations...'; \ + npm run migrate; \ + echo 'Running master-data seed...'; \ + npm run seed:master-data; \ + echo 'Running super-admin seed...'; \ + npm run seed:super-admin; \ + echo 'Migration and seeds completed successfully'; \ + tail -f /dev/null \ + "] \ No newline at end of file