FROM node:20-alpine AS builder WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY . . RUN npm run build RUN npm prune --omit=dev FROM node:20-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./ COPY --from=builder /app/drizzle ./drizzle RUN mkdir -p /app/data EXPOSE 4000 ENV NODE_ENV=production ENV DATA_DIR=/app/data CMD ["sh", "-c", "node dist/server/db/migrate.js && node dist/server/index.js"]