diff --git a/Dockerfile b/Dockerfile index d28e96e..7e87285 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,9 +16,13 @@ ENV HUSKY=0 # ========================================================= FROM base AS deps -COPY package.json ./ +ENV NODE_ENV=development +ENV HUSKY=0 -RUN npm i --no-audit --no-fund +COPY package.json package-lock.json ./ + +RUN npm pkg delete scripts.prepare \ + && npm ci --force --include=dev --no-audit --no-fund # ========================================================= @@ -41,7 +45,7 @@ RUN npm run build # ========================================================= -# One-shot Database Initializer +# One-shot Migration / Seed Initializer # ========================================================= FROM base AS migrator @@ -51,22 +55,35 @@ ENV HUSKY=0 COPY --from=deps /app/node_modules ./node_modules -COPY package.json ./ +COPY package.json package-lock.json ./ COPY drizzle.config.* ./ COPY drizzle ./drizzle COPY src ./src COPY scripts ./scripts COPY tsconfig.json ./ +# เพิ่ม directory อื่น หาก seed import ข้อมูลจากที่อื่น +# COPY data ./data +# COPY seeds ./seeds + CMD ["sh", "-c", "\ set -eu; \ + echo '========================================'; \ echo '1/3 Running database migrations'; \ + echo '========================================'; \ npm run migrate; \ + echo '========================================'; \ echo '2/3 Seeding master data'; \ + echo '========================================'; \ npm run seed:master-data; \ + echo '========================================'; \ echo '3/3 Seeding super administrator'; \ + echo '========================================'; \ npm run seed:super-admin; \ - echo 'Database initialization completed successfully' \ + echo '========================================'; \ + echo 'Database initialization completed'; \ + echo '========================================'; \ + tail -f /dev/null \ "]