Spaces:
Sleeping
Sleeping
Improve Docker configuration with Gunicorn and collectstatic
Browse files- DEPLOYMENT_HF.md +6 -6
- Dockerfile +4 -4
- requirements.txt +1 -0
- satcap_project/settings.py +1 -0
DEPLOYMENT_HF.md
CHANGED
|
@@ -8,19 +8,19 @@ Cette documentation explique les modifications apportées au dossier `backend` p
|
|
| 8 |
Le fichier `Dockerfile` est le cœur de la configuration Docker. Il effectue les actions suivantes :
|
| 9 |
- Utilise une image de base Python 3.10.
|
| 10 |
- Installe les dépendances système nécessaires à OpenCV (`libgl1-mesa-glx`, `libglib2.0-0`).
|
| 11 |
-
- Installe les dépendances Python listées dans `requirements.txt`.
|
| 12 |
- Configure le port par défaut sur `7860` (obligatoire pour Hugging Face Spaces).
|
| 13 |
-
- Exécute les migrations de base de données au démarrage.
|
|
|
|
| 14 |
|
| 15 |
-
### `
|
| 16 |
Ce fichier contient les métadonnées YAML nécessaires à Hugging Face pour identifier le SDK (Docker) et le port de l'application.
|
| 17 |
-
**Note :** Pour que Hugging Face reconnaisse ces métadonnées, ce contenu doit être présent dans le fichier `README.md` à la racine du dépôt sur Hugging Face.
|
| 18 |
|
| 19 |
## 2. Modifications de Configuration
|
| 20 |
|
| 21 |
### Port de l'Application
|
| 22 |
-
Hugging Face Spaces expose l'application sur le port **7860**. Le `Dockerfile` est configuré pour lancer
|
| 23 |
-
`
|
| 24 |
|
| 25 |
### Gestion des Fichiers Statiques et Media
|
| 26 |
Dans un environnement Docker éphémère comme Hugging Face Spaces :
|
|
|
|
| 8 |
Le fichier `Dockerfile` est le cœur de la configuration Docker. Il effectue les actions suivantes :
|
| 9 |
- Utilise une image de base Python 3.10.
|
| 10 |
- Installe les dépendances système nécessaires à OpenCV (`libgl1-mesa-glx`, `libglib2.0-0`).
|
| 11 |
+
- Installe les dépendances Python listées dans `requirements.txt` (incluant `gunicorn`).
|
| 12 |
- Configure le port par défaut sur `7860` (obligatoire pour Hugging Face Spaces).
|
| 13 |
+
- Exécute les migrations de base de données et `collectstatic` au démarrage du build.
|
| 14 |
+
- Utilise `gunicorn` pour servir l'application de manière robuste.
|
| 15 |
|
| 16 |
+
### `README.md`
|
| 17 |
Ce fichier contient les métadonnées YAML nécessaires à Hugging Face pour identifier le SDK (Docker) et le port de l'application.
|
|
|
|
| 18 |
|
| 19 |
## 2. Modifications de Configuration
|
| 20 |
|
| 21 |
### Port de l'Application
|
| 22 |
+
Hugging Face Spaces expose l'application sur le port **7860**. Le `Dockerfile` est configuré pour lancer Gunicorn sur ce port spécifique :
|
| 23 |
+
`gunicorn --bind 0.0.0.0:7860 satcap_project.wsgi:application`
|
| 24 |
|
| 25 |
### Gestion des Fichiers Statiques et Media
|
| 26 |
Dans un environnement Docker éphémère comme Hugging Face Spaces :
|
Dockerfile
CHANGED
|
@@ -26,12 +26,12 @@ COPY . /app/
|
|
| 26 |
# Create media and static directories
|
| 27 |
RUN mkdir -p /app/media /app/static
|
| 28 |
|
| 29 |
-
# Run migrations
|
| 30 |
RUN python manage.py migrate
|
|
|
|
| 31 |
|
| 32 |
# Expose the port Gradio/Hugging Face expects
|
| 33 |
EXPOSE 7860
|
| 34 |
|
| 35 |
-
# Start the application using Gunicorn
|
| 36 |
-
|
| 37 |
-
CMD ["python", "manage.py", "runserver", "0.0.0.0:7860"]
|
|
|
|
| 26 |
# Create media and static directories
|
| 27 |
RUN mkdir -p /app/media /app/static
|
| 28 |
|
| 29 |
+
# Run migrations and collectstatic
|
| 30 |
RUN python manage.py migrate
|
| 31 |
+
RUN python manage.py collectstatic --noinput
|
| 32 |
|
| 33 |
# Expose the port Gradio/Hugging Face expects
|
| 34 |
EXPOSE 7860
|
| 35 |
|
| 36 |
+
# Start the application using Gunicorn
|
| 37 |
+
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "satcap_project.wsgi:application"]
|
|
|
requirements.txt
CHANGED
|
@@ -55,3 +55,4 @@ typing_extensions==4.15.0
|
|
| 55 |
ultralytics==8.3.246
|
| 56 |
ultralytics-thop==2.0.18
|
| 57 |
urllib3==2.6.2
|
|
|
|
|
|
| 55 |
ultralytics==8.3.246
|
| 56 |
ultralytics-thop==2.0.18
|
| 57 |
urllib3==2.6.2
|
| 58 |
+
gunicorn==23.0.0
|
satcap_project/settings.py
CHANGED
|
@@ -83,6 +83,7 @@ USE_I18N = True
|
|
| 83 |
USE_TZ = True
|
| 84 |
|
| 85 |
STATIC_URL = 'static/'
|
|
|
|
| 86 |
|
| 87 |
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
| 88 |
|
|
|
|
| 83 |
USE_TZ = True
|
| 84 |
|
| 85 |
STATIC_URL = 'static/'
|
| 86 |
+
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
|
| 87 |
|
| 88 |
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
| 89 |
|