35 lines
1.2 KiB
Docker
35 lines
1.2 KiB
Docker
# ใช้ Node.js เป็น base image
|
|
FROM node:18-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
|
|
RUN adduser -D myuser
|
|
USER myuser
|
|
|
|
# คัดลอกไฟล์ที่ 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;"]
|