| | |
| | FROM node:20-alpine AS base |
| |
|
| | |
| | RUN apk add --no-cache libc6-compat python3 make g++ |
| |
|
| | WORKDIR /app |
| |
|
| | |
| | FROM base AS deps |
| |
|
| | WORKDIR /app |
| |
|
| | |
| | COPY package.json package-lock.json ./ |
| |
|
| | |
| | RUN npm install --omit=dev --legacy-peer-deps --no-audit --no-fund |
| |
|
| | |
| | FROM base AS builder |
| |
|
| | WORKDIR /app |
| |
|
| | |
| | COPY package.json package-lock.json ./ |
| | RUN npm install --legacy-peer-deps --no-audit --no-fund |
| |
|
| | |
| | COPY . . |
| |
|
| | |
| | |
| | RUN mkdir -p migrations-folder && \ |
| | npx drizzle-kit generate || echo "Skipping drizzle-kit generate step" |
| |
|
| | |
| | RUN npm run build |
| |
|
| | |
| | FROM base AS runner |
| |
|
| | WORKDIR /app |
| | ENV NODE_ENV=production |
| |
|
| | |
| | COPY --from=deps /app/node_modules ./node_modules |
| |
|
| | |
| | COPY --from=builder /app/package.json ./package.json |
| | COPY --from=builder /app/.next ./.next |
| | COPY --from=builder /app/public ./public |
| | COPY --from=builder /app/styles ./styles |
| | COPY --from=builder /app/next.config.js ./next.config.js |
| | COPY --from=builder /app/tailwind.config.js ./tailwind.config.js |
| | COPY --from=builder /app/postcss.config.js ./postcss.config.js |
| | COPY --from=builder /app/drizzle.config.json ./drizzle.config.json |
| | COPY --from=builder /app/migrations-folder ./migrations-folder |
| |
|
| | |
| | COPY --from=builder /app/db ./db |
| |
|
| | EXPOSE 3000 |
| | CMD ["npm", "start"] |
| |
|