# Dockerfile optimisé pour la CI - build générique, variables au runtime FROM docker.io/library/debian:bookworm-slim # Installation des dépendances système RUN apt-get update && apt-get upgrade -y && \ apt-get install -y --fix-missing \ ca-certificates curl jq git \ net-tools iputils-ping dnsutils \ netcat-openbsd telnet procps && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Installation de Node.js RUN curl -fsSL https://deb.nodesource.com/setup_19.x | bash - && \ apt-get install -y nodejs && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* WORKDIR /leCoffre-front # Copie des fichiers de dépendances COPY package.json package-lock.json ./ RUN npm install --no-audit --no-fund # Copie du code source COPY . . # Build avec des variables génériques (surchargées au runtime) # Pas d'ENV NEXT_PUBLIC_* au build pour éviter le bake-time RUN npm run build # Configuration runtime EXPOSE 8080 ENV NODE_ENV=production ENV PORT=8080 # Copie du script de démarrage et permissions COPY start-runtime.js ./ RUN chmod +x start-runtime.js # Utilisateur non-root RUN useradd -m -u 1000 lecoffreuser && \ mkdir -p /leCoffre-front && chown -R lecoffreuser:lecoffreuser /leCoffre-front USER lecoffreuser # Utiliser le script de démarrage qui injecte les variables au runtime CMD ["node", "start-runtime.js"]