Conclusion d'abord : le déploiement Docker de SmartSlim Server se déroule en quatre étapes — construction de l'image, rédaction du docker-compose.yml, démarrage du service, vérification du contrôle de santé. L'image fait environ 450 Mo, la configuration minimale est de 2 cœurs et 4 Go, et le contrôle de santé est validé dans les 5 secondes suivant le démarrage. En production, il faut configurer la persistance des volumes de données, le proxy inverse Nginx, la collecte des journaux et la sauvegarde planifiée. Cet article fournit la configuration complète du docker-compose.yml, le tableau des variables d'environnement et le détail des étapes de déploiement. Commençons par l'architecture de déploiement, puis procédons étape par étape à un déploiement de niveau production.
Si vous souhaitez savoir comment appeler l'API de compression après le déploiement Docker, nous vous recommandons de lire d'abord Guide pratique de l'API de compression : documentation détaillée de l'interface RESTful。
I. Architecture de déploiement Docker
Le déploiement Docker de SmartSlim Server adopte une architecture à conteneur unique : l'application FastAPI s'exécute à l'intérieur, les fichiers et configurations sont rendus persistants via des volumes de données, et le service est exposé via un mappage de ports. En production, une couche de proxy inverse Nginx est ajoutée pour gérer la terminaison TLS et l'équilibrage de charge.
| Composant | Technologie | Rôle | Port |
|---|---|---|---|
| Conteneur SmartSlim | Python 3.9 + FastAPI | Cœur du service de compression | 8000 (interne) |
| Conteneur Nginx | Nginx 1.25 | Proxy inverse/TLS | 80/443 (externe) |
| Volume-data | Docker Volume | Stockage des fichiers compressés | - |
| Volume-logs | Docker Volume | Fichiers journaux | - |
| Volume-config | Docker Volume | Configuration et licence | - |
Avant le déploiement, vérifiez que le serveur respecte la configuration minimale requise. Le tableau ci-dessous donne les recommandations de configuration selon la charge.
| Échelle de déploiement | CPU | Mémoire | Disque | Concurrents | Cas d'usage |
|---|---|---|---|---|---|
| Configuration minimale | 2 cœurs | 4 Go | 20 Go | 4 | Test/petite équipe |
| Configuration recommandée | 4 cœurs | 8 Go | 50 Go | 8 | Entreprise moyenne |
| Configuration haute charge | 8 cœurs | 16 Go | 100 Go | 16 | Grande entreprise |
| Configuration cluster | 4 cœurs x 3 nœuds | 8 Go x 3 | Stockage partagé | 24+ | Production haute disponibilité |
II. Détail de la configuration docker-compose.yml
Voici la configuration principale du docker-compose.yml pour un environnement de production, incluant le service SmartSlim, le proxy inverse Nginx, les volumes de données et la configuration réseau.
| Élément de configuration | Description | Exemple de valeur |
|---|---|---|
| image | Nom de l'image | uglypear/smartslim-server:latest |
| restart | Stratégie de redémarrage | always (environnement de production) |
| ports | Mappage de ports | 8000:8000 |
| volumes | Montage de volumes de données | ./data:/app/data |
| environment | Variable d'environnement | SMARTSLIM_LICENSE=xxx |
| healthcheck | Contrôle de santé | curl -f http://localhost:8000/health |
| depends_on | Service dépendant | nginx |
| deploy.resources | Limites de ressources | cpus:4, memory:8G |
III. Tableau des variables d'environnement
SmartSlim Server configure ses paramètres d'exécution via des variables d'environnement. Le tableau ci-dessous liste tous les paramètres configurables.
| Variable d'environnement | Requis | Valeur par défaut | Description |
|---|---|---|---|
| SMARTSLIM_LICENSE | Oui | - | Clé de licence |
| SMARTSLIM_HOST | Non | 0.0.0.0 | Adresse d'écoute |
| SMARTSLIM_PORT | Non | 8000 | Port d'écoute |
| SMARTSLIM_WORKERS | Non | 4 | Nombre de processus workers |
| SMARTSLIM_MAX_FILE_SIZE | Non | 1073741824 | Limite par fichier (1 Go) |
| SMARTSLIM_SECURITY_LEVEL | Non | MEDIUM | Niveau de sécurité |
| SMARTSLIM_RATE_LIMIT | Non | 60 | Limite de requêtes par minute |
| SMARTSLIM_LOG_LEVEL | Non | INFO | Niveau de journalisation |
| SMARTSLIM_TEMP_DIR | Non | /app/data/tmp | Répertoire des fichiers temporaires |
IV. Détail des étapes de déploiement
Le déploiement Docker se déroule en quatre étapes : construction, démarrage, vérification, surveillance. Le tableau ci-dessous indique les opérations et méthodes de vérification pour chaque étape.
| Étape | Opération | Commande | Méthode de vérification |
|---|---|---|---|
| 1. Construire l'image | Construire l'image SmartSlim | docker build -t smartslim-server . | docker images pour voir l'image |
| 2. Rédiger la configuration | Rédiger le docker-compose.yml | Éditer le fichier yml | docker-compose config pour valider |
| 3. Démarrer le service | Démarrer tous les conteneurs | docker-compose up -d | docker-compose ps pour voir le statut |
| 4. Vérifier la santé | Vérifier la disponibilité du service | curl http://localhost:8000/health | Renvoie {"status":"ok"} |
| 5. Configurer Nginx | Configurer le proxy inverse | Éditer nginx.conf | curl https://domaine/health |
| 6. Déployer la surveillance | Configurer les journaux et la surveillance | Configurer la collecte des journaux | docker logs pour voir les journaux |
V. Meilleures pratiques en production
Le déploiement en production doit prendre en compte quatre aspects : contrôle de santé, collecte des journaux, sauvegarde des données et durcissement de la sécurité. Le tableau ci-dessous présente les meilleures pratiques recommandées.
| Pratique | Recommandation de configuration | Fréquence de vérification | Outil |
|---|---|---|---|
| Contrôle de santé | interval:30s, timeout:10s, retries:3 | Temps réel | Docker healthcheck |
| Collecte des journaux | pilote json-file, max-size:100m, max-file:5 | Temps réel | Docker logging |
| Sauvegarde des données | Sauvegarde quotidienne du volume data vers un stockage indépendant | Quotidienne | cron + docker run |
| Durcissement de la sécurité | Exécution en utilisateur non-root, système de fichiers en lecture seule | Lors du déploiement | Docker security |
| Limites de ressources | cpus:4, memory:8G, seuil d'alerte 80 % | Temps réel | Docker stats |
| Mise à jour de l'image | Récupérer régulièrement la dernière image et mise à jour en continu | Mensuelle | docker-compose pull |
Exemple de configuration complète du contrôle de santé : dans healthcheck, interval est défini à 30 secondes (vérification toutes les 30 secondes), timeout à 10 secondes (délai d'attente avant échec), retries à 3 (3 échecs consécutifs marquent le conteneur comme unhealthy), start_period à 10 secondes (la vérification commence 10 secondes après le démarrage). Ainsi, une anomalie du conteneur est détectée dans les 90 secondes et un redémarrage automatique est déclenché.
| Indicateur de surveillance | Plage normale | Seuil d'alerte | Commande de consultation |
|---|---|---|---|
| Utilisation CPU | 0 %–60 % | >80 % | docker stats |
| Utilisation mémoire | 0 %–70 % | >85 % | docker stats |
| Utilisation disque | 0 %–70 % | >85 % | df -h |
| Temps de réponse API | 0–2 s | >5 s | curl -w paramètre |
| Longueur de la file de compression | 0–20 | >50 | Interface API status |
| Taux d'erreur | 0 %–0,1 % | >1 % | Statistiques des journaux |
Si vous souhaitez comprendre la conception sous-jacente de la file d'attente des tâches de compression, vous pouvez consulter Conception de la file d'attente des tâches de compression. Si vous préférez l'intégration SDK locale au déploiement sur serveur, vous pouvez consulter Guide d'intégration du SDK de compression。
VI. FAQ
Q1:Quelle configuration est requise pour déployer un service de compression avec Docker ?
Configuration minimale pour le déploiement Docker de SmartSlim Server : 2 cœurs CPU, 4 Go de mémoire, 20 Go d'espace disque. Configuration recommandée : 4 cœurs CPU, 8 Go de mémoire, 50 Go de disque. Le système d'exploitation doit avoir Docker 20.10+ et Docker Compose 2.0+ installés. Les architectures x86_64 et ARM64 sont prises en charge, la taille de l'image est d'environ 450 Mo. En production, il est recommandé de prévoir un espace disque supplémentaire pour stocker les fichiers compressés temporaires.
Q2:Comment mettre à jour le service de compression déployé avec Docker ?
Le processus de mise à jour se déroule en trois étapes : 1. docker-compose pull pour récupérer la dernière image ; 2. docker-compose up -d pour redémarrer le conteneur (les données des volumes ne sont pas perdues) ; 3. vérifier l'interface de contrôle de santé pour confirmer le bon fonctionnement du service. Il est recommandé de sauvegarder les volumes de données avant la mise à jour (docker run --volumes-from pour la sauvegarde). La mise à jour en continu permet un temps d'arrêt nul dans un environnement Kubernetes. La compatibilité entre versions est bonne ; consultez le changelog avant une mise à jour de version majeure.
Q3:Comment assurer la persistance des données du service de compression Docker ?
La persistance est assurée via les volumes de données Docker. Trois répertoires doivent être montés : /app/data (stockage des fichiers compressés), /app/logs (fichiers journaux), /app/config (fichiers de configuration et clés de licence). Dans le docker-compose.yml, le champ volumes déclare le mappage de l'hôte vers le conteneur. La suppression du conteneur ne supprime pas les volumes de données, les données sont en sécurité. En production, il est recommandé de monter les volumes de données sur un disque indépendant ou un NAS pour faciliter la sauvegarde et l'extension.
Q4:Le service de compression Docker prend-il en charge le déploiement en haute disponibilité ?
La version serveur de SmartSlim prend en charge le déploiement Docker sur machine unique, la version réseau prend en charge les déploiements multi-services Docker Compose et haute disponibilité Kubernetes. Dans un environnement Kubernetes, le HPA (Horizontal Pod Autoscaler) permet une mise à l'échelle élastique de 3 à 10 réplicas, combinée avec un stockage partagé (MinIO) et une base de données partagée (MySQL) pour rendre le service sans état. La version sur machine unique peut réaliser une haute disponibilité simple via l'équilibrage de charge Nginx avec plusieurs instances, mais la solution K8s de la version réseau est recommandée pour la production.
Conclusion
Le déploiement Docker de SmartSlim Server en quatre étapes : construire l'image, rédiger le docker-compose.yml, démarrer le service, vérifier le contrôle de santé. L'image fait 450 Mo, la configuration minimale est de 2 cœurs et 4 Go, le contrôle de santé est validé 5 secondes après le démarrage. Les 9 variables d'environnement couvrent les paramètres principaux : licence, concurrence, sécurité, limitation de débit. Les six meilleures pratiques en production : contrôle de santé à intervalle de 30 secondes, rotation des journaux à 100 Mo, sauvegarde quotidienne des données, durcissement de sécurité non-root, limites de ressources 4 cœurs 8 Go, mise à jour mensuelle de l'image.
Retenez trois points : premièrement, les volumes de données doivent obligatoirement monter trois répertoires (data/logs/config), la suppression du conteneur n'entraîne pas de perte de données ; deuxièmement, configurez le contrôle de santé avec interval:30s + retries:3, les anomalies sont détectées dans les 90 secondes et le redémarrage est automatique ; troisièmement, en production, ajoutez un proxy inverse Nginx pour la terminaison TLS, n'exposez pas directement le port 8000. Une fois le déploiement terminé, l'API de compression et la file d'attente des tâches permettent de construire un service de compression complet.
Articles connexes
Besoin de compresser des fichiers ? Essayez SmartSlim
Construit sur un moteur de compression Rust auto-développé, prenant en charge 10 catégories et plus de 40 formats, dont PDF, images, vidéo, Office et OFD, avec une compression locale qui garde vos données sur place.