Fazit vorab: Die Docker-Bereitstellung von SmartSlim Server erfolgt in vier Schritten — Image erstellen, docker-compose.yml schreiben, Dienst starten, Health-Check verifizieren. Das Image ist ca. 450 MB groß, die Mindestkonfiguration von 2 Kernen und 4 GB RAM reicht zum Betrieb aus, und nach dem Start wird der Health-Check innerhalb von 5 Sekunden bestanden. Für Produktionsumgebungen sind Daten-Volumes für Persistenz, ein Nginx-Reverse-Proxy, Log-Erfassung und regelmäßige Backups zu konfigurieren. Dieser Artikel bietet eine vollständige docker-compose.yml-Konfiguration, eine Umgebungsvariablen-Tabelle und eine detaillierte Schritt-für-Schritt-Anleitung. Im Folgenden wird zunächst die Bereitstellungsarchitektur erläutert und dann eine produktionsreife Bereitstellung schrittweise durchgeführt.
Wenn Sie wissen möchten, wie die Komprimierungs-API nach der Docker-Bereitstellung aufgerufen wird, lesen Sie zunächst Komprimierungs-API in der Praxis: RESTful-Schnittstellendokumentation.
1. Docker-Bereitstellungsarchitektur
Die Docker-Bereitstellung von SmartSlim Server verwendet eine Single-Container-Architektur, in der eine FastAPI-Anwendung läuft. Daten und Konfigurationen werden über Volumes persistent gespeichert, und der Dienst wird über Port-Mapping nach außen bereitgestellt. In Produktionsumgebungen wird eine Nginx-Reverse-Proxy-Schicht für TLS-Terminierung und Lastverteilung hinzugefügt.
| Komponente | Technologie | Funktion | Port |
|---|---|---|---|
| SmartSlim-Container | Python 3.9 + FastAPI | Komprimierungsdienst-Kern | 8000 (intern) |
| Nginx-Container | Nginx 1.25 | Reverse-Proxy / TLS | 80/443 (extern) |
| Volume-data | Docker Volume | Speicher für Komprimierungsdateien | - |
| Volume-logs | Docker Volume | Protokolldateien | - |
| Volume-config | Docker Volume | Konfiguration und Lizenz | - |
Vor der Bereitstellung ist zu prüfen, ob der Server die Mindestanforderungen erfüllt. Die folgende Tabelle zeigt Konfigurationsempfehlungen für unterschiedliche Lasten.
| Bereitstellungsgröße | CPU | RAM | Festplatte | Parallelität | Anwendungsszenario |
|---|---|---|---|---|---|
| Mindestkonfiguration | 2 Kerne | 4 GB | 20 GB | 4 | Test / kleines Team |
| Empfohlene Konfiguration | 4 Kerne | 8 GB | 50 GB | 8 | Mittleres Unternehmen |
| Hochlast-Konfiguration | 8 Kerne | 16 GB | 100 GB | 16 | Großes Unternehmen |
| Cluster-Konfiguration | 4 Kerne x 3 Knoten | 8 GB x 3 | Shared Storage | 24+ | Hochverfügbare Produktion |
2. docker-compose.yml-Konfiguration im Detail
Im Folgenden ist die Kernkonfiguration der docker-compose.yml für Produktionsumgebungen dargestellt, einschließlich SmartSlim-Dienst, Nginx-Reverse-Proxy, Daten-Volumes und Netzwerkkonfiguration.
| Konfigurationsitem | Beschreibung | Beispielwert |
|---|---|---|
| image | Image-Name | uglypear/smartslim-server:latest |
| restart | Neustart-Strategie | always (Produktion) |
| ports | Port-Mapping | 8000:8000 |
| volumes | Volume-Einbindung | ./data:/app/data |
| environment | Umgebungsvariablen | SMARTSLIM_LICENSE=xxx |
| healthcheck | Health-Check | curl -f http://localhost:8000/health |
| depends_on | Abhängige Dienste | nginx |
| deploy.resources | Ressourcenlimits | cpus:4, memory:8G |
3. Umgebungsvariablen-Konfigurationstabelle
SmartSlim Server konfiguriert Laufzeitparameter über Umgebungsvariablen. Die folgende Tabelle listet alle konfigurierbaren Optionen auf.
| Umgebungsvariable | Erforderlich | Standardwert | Beschreibung |
|---|---|---|---|
| SMARTSLIM_LICENSE | Ja | - | Lizenzschlüssel |
| SMARTSLIM_HOST | Nein | 0.0.0.0 | Listen-Adresse |
| SMARTSLIM_PORT | Nein | 8000 | Listen-Port |
| SMARTSLIM_WORKERS | Nein | 4 | Anzahl der Worker-Prozesse |
| SMARTSLIM_MAX_FILE_SIZE | Nein | 1073741824 | Maximale Dateigröße (1 GB) |
| SMARTSLIM_SECURITY_LEVEL | Nein | MEDIUM | Sicherheitsstufe |
| SMARTSLIM_RATE_LIMIT | Nein | 60 | Anfragen-Limit pro Minute |
| SMARTSLIM_LOG_LEVEL | Nein | INFO | Log-Level |
| SMARTSLIM_TEMP_DIR | Nein | /app/data/tmp | Verzeichnis für temporäre Dateien |
4. Bereitstellungsschritte im Detail
Die Docker-Bereitstellung umfasst vier Phasen: Erstellen, Starten, Verifizieren und Überwachen. Die folgende Tabelle zeigt die Aktionen und Verifikationsmethoden für jeden Schritt.
| Schritt | Aktion | Befehl | Verifikation |
|---|---|---|---|
| 1. Image erstellen | SmartSlim-Image bauen | docker build -t smartslim-server . | docker images zeigt das Image |
| 2. Konfiguration schreiben | docker-compose.yml erstellen | yml-Datei bearbeiten | docker-compose config validieren |
| 3. Dienst starten | Alle Container starten | docker-compose up -d | docker-compose ps zeigt Status |
| 4. Health verifizieren | Dienstverfügbarkeit prüfen | curl http://localhost:8000/health | Rückgabe {"status":"ok"} |
| 5. Nginx konfigurieren | Reverse-Proxy einrichten | nginx.conf bearbeiten | curl https://domain/health |
| 6. Monitoring einrichten | Logs und Überwachung konfigurieren | Log-Erfassung konfigurieren | docker logs anzeigen |
5. Best Practices für Produktionsumgebungen
Für Produktionsumgebungen sind vier Aspekte wichtig: Health-Checks, Log-Erfassung, Daten-Backups und Sicherheits-Härtung. Die folgende Tabelle enthält Best-Practice-Empfehlungen.
| Praxis-Item | Konfigurationsempfehlung | Prüffrequenz | Werkzeug |
|---|---|---|---|
| Health-Check | interval:30s, timeout:10s, retries:3 | Echtzeit | Docker healthcheck |
| Log-Erfassung | json-file-Treiber, max-size:100m, max-file:5 | Echtzeit | Docker logging |
| Daten-Backup | Tägliche Sicherung des data-Volumes auf separaten Speicher | Täglich | cron + docker run |
| Sicherheits-Härtung | Nicht-Root-User, schreibgeschütztes Dateisystem | Bei Bereitstellung | Docker security |
| Ressourcenlimits | cpus:4, memory:8G, Alarm-Schwelle 80% | Echtzeit | Docker stats |
| Image-Updates | Regelmäßig neuestes Image pullen und Rolling Update | Monatlich | docker-compose pull |
Ein vollständiges Health-Check-Konfigurationsbeispiel: Im healthcheck wird interval auf 30 Sekunden gesetzt (Prüfung alle 30 Sekunden), timeout auf 10 Sekunden (Timeout bewirkt Fehler), retries auf 3 (3 aufeinanderfolgende Fehlschläge markieren als unhealthy), start_period auf 10 Sekunden (Prüfung beginnt 10 Sekunden nach Start). So werden Container-Anomalien innerhalb von 90 Sekunden erkannt und automatisch neu gestartet.
| Monitoring-Metrik | Normaler Bereich | Alarm-Schwelle | Befehl |
|---|---|---|---|
| CPU-Auslastung | 0%–60% | >80% | docker stats |
| RAM-Auslastung | 0%–70% | >85% | docker stats |
| Festplattenauslastung | 0%–70% | >85% | df -h |
| API-Antwortzeit | 0–2 Sekunden | >5 Sekunden | curl -w-Parameter |
| Komprimierungs-Warteschlangenlänge | 0–20 | >50 | API status-Endpunkt |
| Fehlerrate | 0%–0,1% | >1% | Log-Statistik |
Wenn Sie das zugrundeliegende Design der Komprimierungs-Task-Warteschlange verstehen möchten, lesen Sie Design der Komprimierungs-Task-Warteschlange. Wenn Sie lieber eine lokale SDK-Integration anstelle einer Server-Bereitstellung bevorzugen, lesen Sie den Komprimierungs-SDK-Integrationsleitfaden.
6. Häufig gestellte Fragen (FAQ)
F1: Welche Konfiguration wird für die Docker-Bereitstellung des Komprimierungsdienstes benötigt?
Die Mindestkonfiguration für die Docker-Bereitstellung von SmartSlim Server: 2 CPU-Kerne, 4 GB RAM, 20 GB Festplattenplatz. Empfohlene Konfiguration: 4 CPU-Kerne, 8 GB RAM, 50 GB Festplatte. Das Betriebssystem benötigt Docker 20.10+ und Docker Compose 2.0+. Unterstützt x86_64- und ARM64-Architekturen, Image-Größe ca. 450 MB. Für Produktionsumgebungen wird empfohlen, zusätzlichen Festplattenplatz für temporäre Komprimierungsdateien vorzusehen.
F2: Wie aktualisiert man den per Docker bereitgestellten Komprimierungsdienst?
Der Aktualisierungsprozess besteht aus drei Schritten: 1. docker-compose pull zum Herunterladen des neuesten Images; 2. docker-compose up -d zum Neustarten der Container (Daten in Volumes gehen nicht verloren); 3. Health-Check-Endpunkt prüfen, um den ordnungsgemäßen Betrieb zu bestätigen. Vor dem Update wird empfohlen, die Daten-Volumes zu sichern (docker run --volumes-from). Rolling Updates können in Kubernetes-Umgebungen Zero-Downtime erreichen. Die Kompatibilität zwischen Versionen ist gut; vor größeren Versions-Upgrades bitte das Changelog lesen.
F3: Wie wird die Datenpersistenz beim Docker-Komprimierungsdienst realisiert?
Die Persistenz wird über Docker-Volumes realisiert. Drei Verzeichnisse müssen eingebunden werden: /app/data (Speicher für Komprimierungsdateien), /app/logs (Protokolldateien), /app/config (Konfigurationsdateien und Lizenzschlüssel). In der docker-compose.yml wird das Volumes-Feld verwendet, um die Zuordnung vom Host zum Container zu deklarieren. Das Löschen des Containers löscht nicht die Daten-Volumes — die Daten sind sicher. Für Produktionsumgebungen wird empfohlen, die Daten-Volumes auf eine separate Festplatte oder NAS einzubinden, um Backups und Kapazitätserweiterungen zu erleichtern.
F4: Unterstützt der Docker-Komprimierungsdienst Hochverfügbarkeits-Bereitstellung?
SmartSlim Server unterstützt Single-Host-Docker-Bereitstellung, die Netzwerkversion unterstützt Docker Compose mit mehreren Diensten und Kubernetes-Hochverfügbarkeits-Bereitstellung. In Kubernetes-Umgebungen wird durch HPA (Horizontal Pod Autoscaler) eine elastische Skalierung von 3–10 Replikaten erreicht, kombiniert mit gemeinsam genutztem Speicher (MinIO) und gemeinsamer Datenbank (MySQL) für Zustandslosigkeit. Die Single-Host-Version kann durch Nginx-Lastverteilung + mehrere Instanzen eine einfache Hochverfügbarkeit erreichen, aber für Produktionsumgebungen wird die K8s-Lösung der Netzwerkversion empfohlen.
Zusammenfassung
Die Docker-Bereitstellung von SmartSlim Server erfolgt in vier Schritten: Image erstellen, docker-compose.yml schreiben, Dienst starten, Health-Check verifizieren. Das Image ist 450 MB groß, mit minimal 2 Kernen und 4 GB RAM lauffähig, und besteht den Health-Check innerhalb von 5 Sekunden nach dem Start. Neun Umgebungsvariablen decken Kernparameter wie Lizenz, Parallelität, Sicherheit und Rate-Limiting ab. Für Produktionsumgebungen gibt es sechs Best Practices: Health-Check alle 30 Sekunden, Log-Rotation bei 100 MB, tägliche Daten-Backups, Nicht-Root-Sicherheits-Härtung, Ressourcenlimits von 4 Kernen und 8 GB sowie monatliche Image-Updates.
Drei Punkte sind zu beachten: Erstens müssen drei Volume-Verzeichnisse (data/logs/config) zwingend eingebunden werden — beim Löschen des Containers gehen keine Daten verloren. Zweitens sollte die Health-Check-Konfiguration interval:30s + retries:3 lauten, damit Anomalien innerhalb von 90 Sekunden erkannt werden und ein automatischer Neustart erfolgt. Drittens sollte in Produktionsumgebungen ein Nginx-Reverse-Proxy für TLS-Terminierung vorgeschaltet werden, anstatt Port 8000 direkt freizugeben. Nach Abschluss der Bereitstellung kann zusammen mit der Komprimierungs-API und der Task-Warteschlange ein vollständiger Komprimierungsdienst aufgebaut werden.
Verwandte Artikel
Dateien komprimieren? Probieren Sie SmartSlim
Basierend auf einer selbstentwickelten Rust-Komprimierungs-Engine, unterstützt 10 Kategorien und über 40 Formate, darunter PDF, Bilder, Video, Office und OFD, mit lokaler Komprimierung, die Ihre Daten vor Ort behält.