# =============================================================================
# GB10 Manager - Documentation (conteneur immutable et securise)
# Image minimale, non-root, systeme de fichiers en lecture seule
# =============================================================================

FROM nginx:1.27-alpine

# Supprimer le contenu par defaut et la configuration
RUN rm -rf /usr/share/nginx/html/* /etc/nginx/conf.d/default.conf

# Configuration nginx securisee
COPY nginx.conf /etc/nginx/conf.d/default.conf

# Fichiers de documentation
COPY index.html /usr/share/nginx/html/
COPY fr.html /usr/share/nginx/html/
COPY en.html /usr/share/nginx/html/
COPY favicon.svg /usr/share/nginx/html/
COPY css/ /usr/share/nginx/html/css/

# Securite : permissions strictes en lecture seule
RUN chown -R nginx:nginx /usr/share/nginx/html && \
    # Fichiers en 444 (lecture seule pour tous)
    find /usr/share/nginx/html -type f -exec chmod 444 {} + && \
    # Repertoires en 555 (traverse + lecture seule)
    find /usr/share/nginx/html -type d -exec chmod 555 {} + && \
    # Repertoires temporaires necessaires pour nginx non-root
    mkdir -p /var/cache/nginx/client_temp \
             /var/cache/nginx/proxy_temp \
             /var/cache/nginx/fastcgi_temp \
             /var/cache/nginx/uwsgi_temp \
             /var/cache/nginx/scgi_temp && \
    chown -R nginx:nginx /var/cache/nginx && \
    # Permissions sur /var/run pour le pid
    chown -R nginx:nginx /var/run && \
    # Supprimer les outils reseau inutiles (surface d'attaque)
    rm -f /usr/bin/wget 2>/dev/null || true && \
    # Nettoyage complet des caches et fichiers temporaires
    rm -rf /var/cache/apk/* /tmp/* /root/.cache /root/.ash_history

# Modifier la configuration nginx principale pour ecouter en non-root
RUN sed -i 's/^user  nginx;/# user nginx;/' /etc/nginx/nginx.conf && \
    sed -i 's|/var/run/nginx.pid|/var/run/nginx.pid|' /etc/nginx/nginx.conf

# Utilisateur non-root (UID 101 = nginx dans Alpine)
USER nginx

# Port d'ecoute
EXPOSE 8200

# Pas de HEALTHCHECK (curl/wget supprimes pour la securite)
# Le healthcheck sera gere au niveau docker run si necessaire

# Point d'entree immutable
ENTRYPOINT ["nginx"]
CMD ["-g", "daemon off;"]
