22 lines
750 B
Docker
22 lines
750 B
Docker
FROM node:20-alpine
|
|
# สำหรับอ่านค่า .env ที่วางไว้ระดับ compose (ไม่ copy เข้า image)
|
|
ENV NODE_ENV=development
|
|
ENV TZ=Asia/Bangkok
|
|
|
|
WORKDIR /app
|
|
|
|
# สร้าง user ไม่ใช่ root (ปลอดภัยขึ้น)
|
|
RUN addgroup -S dms && adduser -S dms -G dms
|
|
|
|
# runtime tools + build deps ชั่วคราว (สำหรับ bcrypt ฯลฯ)
|
|
RUN apk add --no-cache python3 make g++ curl
|
|
# ติดตั้ง nodemon ไว้ให้
|
|
RUN npm i -g nodemon
|
|
|
|
COPY package.json package-lock.json* ./
|
|
RUN (npm ci --omit=dev || npm install --omit=dev)
|
|
|
|
EXPOSE 3001
|
|
USER dms
|
|
CMD ["node", "src/index.js"]
|
|
# backend/Dockerfile (Node.js ESM) |