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.
| Componente | Tecnología | Función | Puerto |
|---|---|---|---|
| Contenedor SmartSlim | Python 3.9 + FastAPI | Núcleo del servicio de compresión | 8000 (interno) |
| Contenedor Nginx | Nginx 1.25 | Proxy inverso/TLS | 80/443 (externo) |
| Volumen-data | Docker Volume | Almacenamiento de archivos comprimidos | - |
| Volumen-logs | Docker Volume | Archivos de registro | - |
| Volumen-config | Docker Volume | Configuració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 despliegue | CPU | Memoria | Disco | Concurrencia | Escenario aplicable |
|---|---|---|---|---|---|
| Configuración mínima | 2 núcleos | 4 GB | 20 GB | 4 | Pruebas/equipo pequeño |
| Configuración recomendada | 4 núcleos | 8 GB | 50 GB | 8 | Empresa mediana |
| Configuración de alta carga | 8 núcleos | 16 GB | 100 GB | 16 | Empresa grande |
| Configuración de clúster | 4 núcleos x 3 nodos | 8 GB x 3 | Almacenamiento compartido | 24+ | 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ón | Descripción | Valor de ejemplo |
|---|---|---|
| image | Nombre de la imagen | uglypear/smartslim-server:latest |
| restart | Estrategia de reinicio | always (entorno de producción) |
| ports | Mapeo de puertos | 8000:8000 |
| volumes | Montaje de volúmenes | ./data:/app/data |
| environment | Variables de entorno | SMARTSLIM_LICENSE=xxx |
| healthcheck | Verificación de salud | curl -f http://localhost:8000/health |
| depends_on | Servicios dependientes | nginx |
| deploy.resources | Límites de recursos | cpus: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 entorno | Obligatorio | Valor por defecto | Descripción |
|---|---|---|---|
| SMARTSLIM_LICENSE | Sí | - | Clave de licencia |
| SMARTSLIM_HOST | No | 0.0.0.0 | Dirección de escucha |
| SMARTSLIM_PORT | No | 8000 | Puerto de escucha |
| SMARTSLIM_WORKERS | No | 4 | Número de procesos de trabajo |
| SMARTSLIM_MAX_FILE_SIZE | No | 1073741824 | Límite de archivo único (1 GB) |
| SMARTSLIM_SECURITY_LEVEL | No | MEDIUM | Nivel de seguridad |
| SMARTSLIM_RATE_LIMIT | No | 60 | Límite de solicitudes por minuto |
| SMARTSLIM_LOG_LEVEL | No | INFO | Nivel de registro |
| SMARTSLIM_TEMP_DIR | No | /app/data/tmp | Directorio 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.
| Paso | Operación | Comando | Método de verificación |
|---|---|---|---|
| 1. Construir imagen | Construir la imagen de SmartSlim | docker build -t smartslim-server . | docker images para ver la imagen |
| 2. Escribir configuración | Escribir docker-compose.yml | Editar archivo yml | docker-compose config para validar |
| 3. Iniciar servicio | Iniciar todos los contenedores | docker-compose up -d | docker-compose ps para ver el estado |
| 4. Verificar salud | Comprobar disponibilidad del servicio | curl http://localhost:8000/health | Devuelve {"status":"ok"} |
| 5. Configurar Nginx | Configurar proxy inverso | Editar nginx.conf | curl https://dominio/health |
| 6. Desplegar monitorización | Configurar registros y monitorización | Configurar recopilación de registros | docker 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áctica | Recomendación de configuración | Frecuencia de verificación | Herramienta |
|---|---|---|---|
| Verificación de salud | interval:30s, timeout:10s, retries:3 | Tiempo real | Docker healthcheck |
| Recopilación de registros | Driver json-file, max-size:100m, max-file:5 | Tiempo real | Docker logging |
| Copia de seguridad de datos | Copia diaria del volumen data a almacenamiento independiente | Diariamente | cron + docker run |
| Endurecimiento de seguridad | Ejecutar como usuario no root, sistema de archivos de solo lectura | Al desplegar | Docker security |
| Límites de recursos | cpus:4, memory:8G, umbral de alerta 80% | Tiempo real | Docker stats |
| Actualización de imagen | Pull periódico de la última imagen y actualización continua | Mensualmente | docker-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ón | Rango normal | Umbral de alerta | Comando de consulta |
|---|---|---|---|
| Uso de CPU | 0%–60% | >80% | docker stats |
| Uso de memoria | 0%–70% | >85% | docker stats |
| Uso de disco | 0%–70% | >85% | df -h |
| Tiempo de respuesta API | 0–2 segundos | >5 segundos | curl -w |
| Longitud de cola de compresión | 0–20 | >50 | Interfaz API status |
| Tasa de error | 0%–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.
Artículos relacionados
¿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.