FROM node:20-alpine WORKDIR /app # Install dependencies ทั้ง runtime และ build RUN apk add --no-cache \ python3 \ make \ g++ \ openssl-dev \ libstdc++ # Install pnpm RUN npm install -g pnpm # Copy package files COPY package*.json ./ COPY pnpm-lock.yaml* ./ # Install dependencies RUN pnpm install --frozen-lockfile # Copy prisma schema COPY prisma ./prisma # Generate Prisma client RUN pnpm prisma:generate # Copy source code COPY . . # Build application RUN pnpm build # Set environment ENV NODE_ENV=production ENV PORT=4000 EXPOSE 4000 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:4000/health || exit 1 CMD ["npm", "start"]