# TravelQ Hotel Admin — ảnh tự vận hành (Node.js 22 LTS, SQLite tích hợp node:sqlite).
# Không chứa bí mật. Điền biến môi trường lúc chạy (env_file / -e), không nhúng vào ảnh.
FROM node:22-bookworm-slim

WORKDIR /app

COPY package.json package-lock.json ./
# Gói này không có phụ thuộc npm bắt buộc (dùng node:sqlite có sẵn). npm ci vẫn chạy để khóa phiên bản.
RUN npm ci --omit=dev || npm install --omit=dev

COPY may-chu ./may-chu
COPY ma-nguon ./ma-nguon
COPY du-lieu ./du-lieu
COPY VERSION.json ./VERSION.json
COPY package.json package-lock.json ./

RUN mkdir -p /app/data && chown -R node:node /app

ENV HOST=0.0.0.0
ENV PORT=8788
ENV DATA_DIR=/app/data
EXPOSE 8788

USER node
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3   CMD node -e "fetch('http://127.0.0.1:'+(process.env.PORT||8788)+'/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"

CMD ["node", "may-chu/server.mjs"]
