Despliegue de servicio de compresión con Docker: guía práctica de SmartSlim Server

Conclusión primero: el despliegue Docker de SmartSlim Server se divide en cuatro pasos — construir la imagen, escribir docker-compose.yml, iniciar el servicio y verificar el health check. El tamaño de la imagen es de aproximadamente 450 MB, la configuración mínima de 2 núcleos y 4 GB es suficiente para ejecutarlo, y pasa el health check en 5 segundos tras el inicio. El entorno de producción requiere configurar persistencia de volúmenes de datos, proxy inverso Nginx, recopilación de registros y copias de seguridad programadas. Este artículo proporciona la configuración completa de docker-compose.yml, la tabla de variables de entorno y una explicación detallada de los pasos de despliegue. A continuación se explica la arquitectura de despliegue y se completa gradualmente un despliegue de nivel de producción.

Si necesita entender cómo llamar a la API de compresión después del despliegue Docker, le recomendamos leer primero Guía práctica de llamada a la API de compresión: documentación detallada de la interfaz RESTful.

I. Arquitectura de despliegue Docker

El despliegue Docker de SmartSlim Server adopta una arquitectura de contenedor único, que ejecuta internamente una aplicación FastAPI, persiste archivos y configuraciones mediante volúmenes de datos y proporciona servicios externamente mediante mapeo de puertos. El entorno de producción añade una capa de proxy inverso Nginx para gestionar la terminación TLS y el balanceo de carga.

ComponenteTecnologíaFunciónPuerto
Contenedor SmartSlimPython 3.9 + FastAPINúcleo del servicio de compresión8000 (interno)
Contenedor NginxNginx 1.25Proxy inverso/TLS80/443 (externo)
Volumen-dataDocker VolumeAlmacenamiento de archivos comprimidos-
Volumen-logsDocker VolumeArchivos de registro-
Volumen-configDocker VolumeConfiguración y licencia-

Antes del despliegue, confirme que el servidor cumple con los requisitos mínimos de configuración. La siguiente tabla muestra las recomendaciones de configuración para diferentes cargas.

Escala de despliegueCPUMemoriaDiscoConcurrenciaEscenario aplicable
Configuración mínima2 núcleos4 GB20 GB4Pruebas/equipo pequeño
Configuración recomendada4 núcleos8 GB50 GB8Empresa mediana
Configuración de alta carga8 núcleos16 GB100 GB16Empresa grande
Configuración de clúster4 núcleos x 3 nodos8 GB x 3Almacenamiento compartido24+Producción de alta disponibilidad

II. Explicación detallada de la configuración docker-compose.yml

A continuación se muestra la configuración principal de docker-compose.yml para entorno de producción, incluyendo el servicio SmartSlim, el proxy inverso Nginx, los volúmenes de datos y la configuración de red.

Elemento de configuraciónDescripciónValor de ejemplo
imageNombre de la imagenuglypear/smartslim-server:latest
restartEstrategia de reinicioalways (entorno de producción)
portsMapeo de puertos8000:8000
volumesMontaje de volúmenes./data:/app/data
environmentVariables de entornoSMARTSLIM_LICENSE=xxx
healthcheckVerificación de saludcurl -f http://localhost:8000/health
depends_onServicios dependientesnginx
deploy.resourcesLímites de recursoscpus:4, memory:8G

III. Tabla de configuración de variables de entorno

SmartSlim Server configura sus parámetros de ejecución mediante variables de entorno. La siguiente tabla lista todos los elementos configurables.

Variable de entornoObligatorioValor por defectoDescripción
SMARTSLIM_LICENSE-Clave de licencia
SMARTSLIM_HOSTNo0.0.0.0Dirección de escucha
SMARTSLIM_PORTNo8000Puerto de escucha
SMARTSLIM_WORKERSNo4Número de procesos de trabajo
SMARTSLIM_MAX_FILE_SIZENo1073741824Límite de archivo único (1 GB)
SMARTSLIM_SECURITY_LEVELNoMEDIUMNivel de seguridad
SMARTSLIM_RATE_LIMITNo60Límite de solicitudes por minuto
SMARTSLIM_LOG_LEVELNoINFONivel de registro
SMARTSLIM_TEMP_DIRNo/app/data/tmpDirectorio de archivos temporales

IV. Explicación detallada de los pasos de despliegue

El despliegue Docker se divide en cuatro pasos: construcción, inicio, verificación y monitorización. La siguiente tabla muestra las operaciones y métodos de verificación de cada paso.

PasoOperaciónComandoMétodo de verificación
1. Construir imagenConstruir la imagen de SmartSlimdocker build -t smartslim-server .docker images para ver la imagen
2. Escribir configuraciónEscribir docker-compose.ymlEditar archivo ymldocker-compose config para validar
3. Iniciar servicioIniciar todos los contenedoresdocker-compose up -ddocker-compose ps para ver el estado
4. Verificar saludComprobar disponibilidad del serviciocurl http://localhost:8000/healthDevuelve {"status":"ok"}
5. Configurar NginxConfigurar proxy inversoEditar nginx.confcurl https://dominio/health
6. Desplegar monitorizaciónConfigurar registros y monitorizaciónConfigurar recopilación de registrosdocker logs para ver registros

V. Mejores prácticas para entorno de producción

El despliegue en entorno de producción requiere atención a cuatro aspectos: verificación de salud, recopilación de registros, copias de seguridad de datos y endurecimiento de seguridad. La siguiente tabla muestra las mejores prácticas recomendadas.

PrácticaRecomendación de configuraciónFrecuencia de verificaciónHerramienta
Verificación de saludinterval:30s, timeout:10s, retries:3Tiempo realDocker healthcheck
Recopilación de registrosDriver json-file, max-size:100m, max-file:5Tiempo realDocker logging
Copia de seguridad de datosCopia diaria del volumen data a almacenamiento independienteDiariamentecron + docker run
Endurecimiento de seguridadEjecutar como usuario no root, sistema de archivos de solo lecturaAl desplegarDocker security
Límites de recursoscpus:4, memory:8G, umbral de alerta 80%Tiempo realDocker stats
Actualización de imagenPull periódico de la última imagen y actualización continuaMensualmentedocker-compose pull

Un ejemplo completo de configuración de health check: en healthcheck se establece interval en 30 segundos (verificación cada 30 segundos), timeout en 10 segundos (si se excede el tiempo se considera fallo), retries en 3 (3 fallos consecutivos marcan el contenedor como unhealthy) y start_period en 10 segundos (comienza la verificación 10 segundos después del inicio). Así, las anomalías del contenedor se detectan en 90 segundos y se reinicia automáticamente.

Métrica de monitorizaciónRango normalUmbral de alertaComando de consulta
Uso de CPU0%–60%>80%docker stats
Uso de memoria0%–70%>85%docker stats
Uso de disco0%–70%>85%df -h
Tiempo de respuesta API0–2 segundos>5 segundoscurl -w
Longitud de cola de compresión0–20>50Interfaz API status
Tasa de error0%–0.1%>1%Estadísticas de registro

Si necesita conocer el diseño subyacente de la cola de tareas de compresión, puede consultar Diseño de cola de tareas de compresión. Si prefiere la integración local mediante SDK en lugar del despliegue de servidor, puede consultar la Guía de integración del SDK de compresión.

VI. Preguntas frecuentes (FAQ)

P1: ¿Qué configuración necesita el despliegue Docker del servicio de compresión?

La configuración mínima para el despliegue Docker de SmartSlim Server es: CPU de 2 núcleos, 4 GB de memoria, 20 GB de espacio en disco; se recomienda CPU de 4 núcleos, 8 GB de memoria, 50 GB de disco. El sistema operativo debe tener Docker 20.10+ y Docker Compose 2.0+ instalados. Compatible con arquitecturas x86_64 y ARM64, el tamaño de la imagen es de aproximadamente 450 MB. En entornos de producción se recomienda reservar espacio de disco adicional para almacenar archivos comprimidos temporales.

P2: ¿Cómo actualizar y mejorar el servicio de compresión desplegado con Docker?

El proceso de actualización tiene tres pasos: 1. docker-compose pull para obtener la última imagen; 2. docker-compose up -d para reiniciar el contenedor (los datos del volumen no se pierden); 3. verificar la interfaz de health check para confirmar que el servicio funciona correctamente. Se recomienda hacer una copia de seguridad del volumen de datos antes de actualizar (docker run --volumes-from para copia de seguridad); la actualización continua puede lograr cero tiempo de inactividad en entornos Kubernetes. La compatibilidad entre versiones es buena; consulte el changelog antes de actualizaciones de versiones mayores.

P3: ¿Cómo implementar la persistencia de datos en el servicio de compresión Docker?

La persistencia se implementa mediante volúmenes de datos de Docker. Se necesitan montar tres directorios: /app/data (almacenamiento de archivos comprimidos), /app/logs (archivos de registro), /app/config (archivos de configuración y claves de licencia). En docker-compose.yml se declara el mapeo de host a contenedor mediante el campo volumes. Eliminar el contenedor no elimina los volúmenes de datos, por lo que los datos están seguros. En entornos de producción se recomienda montar los volúmenes en un disco independiente o NAS para facilitar las copias de seguridad y la expansión.

P4: ¿El servicio de compresión Docker soporta despliegue de alta disponibilidad?

La versión de servidor de SmartSlim soporta despliegue Docker en una sola máquina; la versión de red soporta Docker Compose con múltiples servicios y despliegue de alta disponibilidad con Kubernetes. En entornos Kubernetes, HPA (Horizontal Pod Autoscaler) permite el escalado elástico de 3 a 10 réplicas, combinado con almacenamiento compartido (MinIO) y base de datos compartida (MySQL) para lograr sin estado. La versión de una sola máquina puede lograr una alta disponibilidad sencilla mediante balanceo de carga Nginx + múltiples instancias, pero para entornos de producción se recomienda la solución K8s de la versión de red.

Resumen

El despliegue Docker de SmartSlim Server en cuatro pasos: construir la imagen, escribir docker-compose.yml, iniciar el servicio y verificar el health check. La imagen ocupa 450 MB, con una configuración mínima de 2 núcleos y 4 GB se puede ejecutar, y pasa el health check en 5 segundos tras el inicio. Las 9 variables de entorno cubren los parámetros principales de licencia, concurrencia, seguridad y limitación de velocidad. Las seis mejores prácticas para entorno de producción: health check con intervalo de 30 segundos, rotación de registros de 100 MB, copia de seguridad diaria de datos, endurecimiento de seguridad con usuario no root, límites de recursos de 4 núcleos y 8 GB, y actualización mensual de la imagen.

Recuerde tres puntos: primero, los volúmenes de datos deben montar tres directorios (data/logs/config); eliminar el contenedor no pierde datos; segundo, la configuración de health check con interval:30s + retries:3 detecta anomalías en 90 segundos y reinicia automáticamente; tercero, en entorno de producción añada un proxy inverso Nginx para la terminación TLS, no exponga directamente el puerto 8000. Una vez completado el despliegue, combinado con la API de compresión y la cola de tareas, se construye un servicio de compresión completo.

¿Necesita comprimir archivos? Pruebe SmartSlim

Construido sobre un motor de compresión Rust propio, compatible con 10 categorías y más de 40 formatos, incluyendo PDF, imágenes, vídeo, Office y OFD, con compresión local que mantiene sus datos en sus instalaciones.