# Gestionale Dogre — immagine di produzione
FROM node:22-alpine

ENV NODE_ENV=production
WORKDIR /app

# Dipendenze (solo produzione) — layer cache-friendly
COPY package*.json ./
RUN npm ci --omit=dev

# Codice applicativo
COPY server ./server
COPY public ./public

# Il database SQLite vive qui: montare un volume per la persistenza
ENV DOGRE_DATA_DIR=/data
RUN mkdir -p /data && chown -R node:node /data /app
VOLUME ["/data"]

USER node
EXPOSE 3000

# Healthcheck sull'endpoint applicativo
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
  CMD node -e "fetch('http://127.0.0.1:'+(process.env.PORT||3000)+'/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"

CMD ["node", "--disable-warning=ExperimentalWarning", "server/index.js"]
