Spaces:
Build error
Build error
| # ÉTAPE 1: Image de base | |
| FOM python:3.11-slim | |
| # ÉTAPE 2: Configuration et Dossier de travail | |
| # Ligne supprimée (ENV PORT 8080) pour laisser Hugging Face Spaces injecter le port correct ($PORT, généralement 7860). | |
| ENV FLASK_APP app.py | |
| ENV GUNICORN_WORKERS 4 | |
| ENV GUNICORN_THREADS 2 | |
| # Création et utilisation du répertoire /app | |
| WORKDIR /app | |
| # ÉTAPE 3: Installation des dépendances (OPTIMISATION CACHING) | |
| # Copie uniquement de requirements.txt pour mettre en cache l'installation | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt \ | |
| && rm requirements.txt | |
| # ÉTAPE 4: Copie de l'Application et des Fichiers | |
| # Nous copions tous les fichiers de l'application et nous assurons que | |
| # l'utilisateur 'user' en est le propriétaire. | |
| # CORRECTION MAJEURE : Ajout du dossier templates | |
| # Ceci est l'étape essentielle pour que Flask trouve vos fichiers HTML | |
| COPY templates /app/templates | |
| # Copie des autres fichiers (y compris app.py, votre point d'entrée) | |
| COPY app.py . | |
| COPY config.py . | |
| COPY user_routes.py . | |
| COPY web_routes.py . | |
| COPY decorators.py . | |
| COPY billing_routes.py . | |
| COPY auth_backend.py . | |
| COPY baserow_storage.py . | |
| COPY embed_routes.py . | |
| COPY terminal_manager.py . | |
| COPY huggingface_storage.py . | |
| # Copie du script d'entrée | |
| COPY entrypoint.sh . | |
| # NOUVEAU: CORRECTION DES FINS DE LIGNE (Résout 'exec ./entrypoint.sh: no such file or directory') | |
| # Supprime le caractère de retour chariot (\r) | |
| RUN sed -i 's/\r$//' entrypoint.sh | |
| # Le rendre exécutable | |
| RUN chmod +x entrypoint.sh | |
| # ÉTAPE 5: Sécurité et Exécution | |
| # Création et bascule vers l'utilisateur non-root ('user') pour la sécurité | |
| RUN useradd -ms /bin/bash user | |
| RUN chown -R user:user /app | |
| USER user | |
| # Indique à Docker que le conteneur écoute sur ce port | |
| EXPOSE $PORT | |
| # Lance l'application via le script d'entrée | |
| CMD ["./entrypoint.sh"] |