# Dockerfile.api - API Web Sentinel pour production
FROM python:3.11-slim

# Métadonnées
LABEL maintainer="taaazzz-prog.fr"
LABEL version="1.0.0"
LABEL description="Web Sentinel Security Scanner API"

# Variables d'environnement
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
ENV FLASK_APP=web_sentinel_api.py
ENV FLASK_ENV=production

# Dépendances système
RUN apt-get update && apt-get install -y \
    gcc \
    curl \
    && rm -rf /var/lib/apt/lists/*

# Créer l'utilisateur applicatif
RUN useradd --create-home --shell /bin/bash websentinel

# Répertoire de travail
WORKDIR /app

# Copier les requirements
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt Flask Flask-CORS

# Copier le code source complet
COPY web_sentinel/ ./web_sentinel/
COPY web_sentinel_api_honest.py ./

# Créer les dossiers nécessaires
RUN mkdir -p /app/data /app/logs /app/config && \
    chown -R websentinel:websentinel /app

# Passer à l'utilisateur non-root
USER websentinel

# Port d'exposition
EXPOSE 5000

# Healthcheck
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
  CMD curl -f http://localhost:5000/api/v1/health || exit 1

# Point d'entrée
CMD ["python", "web_sentinel_api_honest.py"]