FROM node:22-slim AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:22-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev && npm cache clean --force
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/views ./views
COPY --from=builder /app/public ./public
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod 755 /usr/local/bin/docker-entrypoint.sh

# Toutes les données (config, users, sessions, plugins…) vivent dans ce dossier : à monter en volume.
# Agora tourne sous l'utilisateur node (uid 1000) : l'entrypoint lui rend ce dossier au démarrage.
ENV AGORA_DATA_DIR=/data

EXPOSE 3067
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["node", "--dns-result-order=ipv4first", "dist/src/index.js"]
