Docker-Komprimierungsdienst bereitstellen: SmartSlim Server in der Praxis

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.

KomponenteTechnologieFunktionPort
SmartSlim-ContainerPython 3.9 + FastAPIKomprimierungsdienst-Kern8000 (intern)
Nginx-ContainerNginx 1.25Reverse-Proxy / TLS80/443 (extern)
Volume-dataDocker VolumeSpeicher für Komprimierungsdateien-
Volume-logsDocker VolumeProtokolldateien-
Volume-configDocker VolumeKonfiguration 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ößeCPURAMFestplatteParallelitätAnwendungsszenario
Mindestkonfiguration2 Kerne4 GB20 GB4Test / kleines Team
Empfohlene Konfiguration4 Kerne8 GB50 GB8Mittleres Unternehmen
Hochlast-Konfiguration8 Kerne16 GB100 GB16Großes Unternehmen
Cluster-Konfiguration4 Kerne x 3 Knoten8 GB x 3Shared Storage24+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.

KonfigurationsitemBeschreibungBeispielwert
imageImage-Nameuglypear/smartslim-server:latest
restartNeustart-Strategiealways (Produktion)
portsPort-Mapping8000:8000
volumesVolume-Einbindung./data:/app/data
environmentUmgebungsvariablenSMARTSLIM_LICENSE=xxx
healthcheckHealth-Checkcurl -f http://localhost:8000/health
depends_onAbhängige Dienstenginx
deploy.resourcesRessourcenlimitscpus:4, memory:8G

3. Umgebungsvariablen-Konfigurationstabelle

SmartSlim Server konfiguriert Laufzeitparameter über Umgebungsvariablen. Die folgende Tabelle listet alle konfigurierbaren Optionen auf.

UmgebungsvariableErforderlichStandardwertBeschreibung
SMARTSLIM_LICENSEJa-Lizenzschlüssel
SMARTSLIM_HOSTNein0.0.0.0Listen-Adresse
SMARTSLIM_PORTNein8000Listen-Port
SMARTSLIM_WORKERSNein4Anzahl der Worker-Prozesse
SMARTSLIM_MAX_FILE_SIZENein1073741824Maximale Dateigröße (1 GB)
SMARTSLIM_SECURITY_LEVELNeinMEDIUMSicherheitsstufe
SMARTSLIM_RATE_LIMITNein60Anfragen-Limit pro Minute
SMARTSLIM_LOG_LEVELNeinINFOLog-Level
SMARTSLIM_TEMP_DIRNein/app/data/tmpVerzeichnis 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.

SchrittAktionBefehlVerifikation
1. Image erstellenSmartSlim-Image bauendocker build -t smartslim-server .docker images zeigt das Image
2. Konfiguration schreibendocker-compose.yml erstellenyml-Datei bearbeitendocker-compose config validieren
3. Dienst startenAlle Container startendocker-compose up -ddocker-compose ps zeigt Status
4. Health verifizierenDienstverfügbarkeit prüfencurl http://localhost:8000/healthRückgabe {"status":"ok"}
5. Nginx konfigurierenReverse-Proxy einrichtennginx.conf bearbeitencurl https://domain/health
6. Monitoring einrichtenLogs und Überwachung konfigurierenLog-Erfassung konfigurierendocker 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-ItemKonfigurationsempfehlungPrüffrequenzWerkzeug
Health-Checkinterval:30s, timeout:10s, retries:3EchtzeitDocker healthcheck
Log-Erfassungjson-file-Treiber, max-size:100m, max-file:5EchtzeitDocker logging
Daten-BackupTägliche Sicherung des data-Volumes auf separaten SpeicherTäglichcron + docker run
Sicherheits-HärtungNicht-Root-User, schreibgeschütztes DateisystemBei BereitstellungDocker security
Ressourcenlimitscpus:4, memory:8G, Alarm-Schwelle 80%EchtzeitDocker stats
Image-UpdatesRegelmäßig neuestes Image pullen und Rolling UpdateMonatlichdocker-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-MetrikNormaler BereichAlarm-SchwelleBefehl
CPU-Auslastung0%–60%>80%docker stats
RAM-Auslastung0%–70%>85%docker stats
Festplattenauslastung0%–70%>85%df -h
API-Antwortzeit0–2 Sekunden>5 Sekundencurl -w-Parameter
Komprimierungs-Warteschlangenlänge0–20>50API status-Endpunkt
Fehlerrate0%–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.

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.