2025-04-16 08:30:38 +07:00

33 lines
1.1 KiB
Docker

# ใช้ Node.js เป็น base image
FROM node:22-alpine AS build
# กำหนด working directory ใน container
WORKDIR /app
# คัดลอกไฟล์ package.json และ package-lock.json ไปยัง container
COPY package.json package-lock.json ./
# ติดตั้ง dependencies รวม devDependencies
RUN npm ci # ติดตั้ง dependencies ทั้งหมด
# คัดลอกไฟล์ทั้งหมดของโปรเจคไปยัง container
COPY .. .
# Build React + Vite
RUN npm run build # ตอนนี้ vite build จะใช้ @vitejs/plugin-react ได้แล้ว
# ใช้ Nginx เป็น Web Server สำหรับเสิร์ฟไฟล์ static
FROM nginx:alpine
# คัดลอกไฟล์ที่ build แล้วไปยัง Nginx
COPY --from=build /app/dist /usr/share/nginx/html
# ลบ cache หรือไฟล์ที่ไม่จำเป็น
RUN rm -rf /var/cache/apk/*
# เปิดพอร์ต 80
EXPOSE 80
# สั่งให้ Nginx ทำงาน
CMD ["nginx", "-g", "daemon off;"]