Usa un período de gracia de inicio y una comprobación de disponibilidad económica; no hagas que un calentamiento esperado parezca un fallo.
Esto es importante en una aplicación de fotos, búsqueda o base de datos que necesita varios minutos para migrar, cargar índices o calentar cachés. El riesgo operativo es que una comprobación agresiva marque como fallido un inicio saludable y active una automatización externa, aunque el estado de salud de Docker por sí solo no reinicie un contenedor normal de Compose. Empieza con una línea base guardada, realiza un cambio reversible cada vez y detente cuando la rama observada ya no coincida con la ruta de configuración prevista.
Establecer la línea base de las comprobaciones de salud del contenedor de inicio lento
Antes de cambiar la configuración, registra la duración del inicio en frío, el tiempo de ejecución de la comprobación, las transiciones de salud, la disponibilidad de las dependencias y los registros de la aplicación. Captura la configuración original y una ejecución similar a producción para que las mejoras posteriores se comparen con la misma carga de trabajo, en lugar de basarse en la memoria o en un estado sintético inactivo.
Usa la configuración actual de la comprobación de salud de Compose para confirmar el control compatible y su semántica. Trata los valores predeterminados como un punto de partida conocido, no como una prueba de que la configuración coincide con este servidor, esta combinación de clientes o este objetivo de recuperación.
Define los criterios de aceptación y las condiciones de detención antes de editar. La señal de aceptación debe ser visible en los registros, el estado del protocolo, la salida de la aplicación o los datos restaurados; la condición de detención debe impedir un acceso más amplio, la pérdida de datos, el agotamiento de recursos o una interrupción que consuma la siguiente ventana de recuperación.
Aplicar el cambio en las comprobaciones de salud del contenedor de inicio lento en etapas controladas
Paso 1: Comprueba un endpoint local de disponibilidad o un comando de estado nativo en lugar de un flujo de trabajo completo del usuario. Después del cambio, inspecciona inmediatamente el estado esperado; si no aparece, deshaz este paso antes de aplicar el siguiente.
Paso 2: Configura start_period con una duración superior al inicio en frío normal observado y usa después un intervalo más corto para el estado estable y un número limitado de reintentos. Después del cambio, inspecciona inmediatamente el estado esperado; si no aparece, deshaz este paso antes de aplicar el siguiente.
Paso 3: Mantén la política de reinicio separada de la interpretación de la salud y haz que cualquier supervisor requiera varias comprobaciones fallidas en estado estable. Después del cambio, inspecciona inmediatamente el estado esperado; si no aparece, deshaz este paso antes de aplicar el siguiente.
healthcheck:
test: ["CMD", "appctl", "ready"]
start_period: 180s
interval: 30s
timeout: 5s
retries: 3
Interpretar las ramas de éxito, fallo y excepción
Un éxito significa que la aplicación pasa de iniciándose a saludable una sola vez y permanece saludable durante dos inicios en frío. Registra la carga de trabajo exacta, la versión y los tiempos que produjeron el resultado; una prueba más ligera no demuestra que el problema original se haya resuelto.
Un fallo significa que la comprobación agota el tiempo mientras la aplicación aún progresa, o que tiene éxito antes de que las dependencias estén disponibles. No lo compenses debilitando todos los controles adyacentes. Vuelve a la última línea base limpia y aísla si la discrepancia corresponde a la identidad, la red, el almacenamiento, la disponibilidad de la aplicación o la capacidad.
Ante una excepción o un resultado ambiguo, restaura la comprobación de salud anterior y desactiva cualquier supervisor basado en el estado de salud antes de ajustar la aplicación. Escala el problema solo después de que el discriminador de bajo riesgo sea repetible y las pruebas indiquen que es necesario un cambio más profundo de la plataforma o del hardware.
Verificar la persistencia con la carga original del servidor doméstico
Repite la misma ruta de cliente, el tamaño de archivo, la concurrencia, el evento de suspensión o reinicio y la carga de trabajo simultánea utilizados en la línea base. Ejecuta al menos dos ciclos para no confundir un éxito con la caché caliente, una reconexión afortunada o un único inicio limpio con una solución persistente.
Confirma tanto el éxito como la contención: la aplicación pasa de iniciándose a saludable una sola vez y permanece saludable durante dos inicios en frío, mientras que los usuarios, servicios, recursos compartidos y rutas administrativas no relacionados conservan su comportamiento original. Consulta el flujo de trabajo relacionado de ZimaSpace cuando el cambio afecte a un límite cercano de almacenamiento, red o recuperación.
Cierra el cambio solo cuando la señal de aceptación persista y la reversión siga siendo utilizable. Si la comprobación agota el tiempo mientras la aplicación aún progresa, o tiene éxito antes de que las dependencias estén disponibles, detén la automatización, conserva los registros y la configuración guardada y vuelve al último estado verificado en lugar de acumular más cambios.
Preguntas frecuentes sobre la expansión de consultas, decisión final y prueba definitiva
Estas preguntas sobre la expansión de consultas cubren las siguientes decisiones que los usuarios suelen buscar después de que funcione la configuración principal. Amplían el límite sin introducir una ruta de reparación no probada.
Aplica cada respuesta solo cuando su condición coincida con el entorno medido. Las diferencias de versión, protocolo, sistema de archivos, cliente y límite de confianza pueden cambiar la rama correcta.
Conserva las respuestas junto con el procedimiento operativo y actualízalas después de las actualizaciones o los cambios de topología. Cualquier excepción que amplíe el acceso de escritura, la accesibilidad de red o la autoridad de eliminación requiere una nueva prueba de reversión y recuperación.
¿Debe una comprobación de salud probar la URL pública?
Por lo general, no. Usa una ruta local de disponibilidad para que el DNS, TLS y el proxy inverso no conviertan una sola comprobación en una prueba de toda la pila.
¿El estado no saludable reinicia un servicio de Compose?
No por sí solo en Compose normal. Un orquestador o supervisor independiente debe actuar sobre el estado, así que documenta esa ruta de control.
¿Cuánto debe durar start_period?
Usa un inicio en frío de percentil alto medido, más un margen, y vuelve a probar después de las actualizaciones o las migraciones de la base de datos.
Conclusión: La configuración está completa cuando la aplicación pasa de iniciándose a saludable una sola vez y permanece saludable durante dos inicios en frío, se comprende la rama de fallo y la reversión documentada no depende del componente que se está cambiando.
Protocolo de prueba final: restaura la línea base guardada, aplica una vez el cambio aprobado, repite la carga similar a producción original, verifica la señal de éxito y el límite de contención y, después, ejecuta la reversión con datos desechables. Conserva el cambio solo cuando las cinco observaciones coincidan.
Soporte y Consejos
Más para leer

¿Puede una galería autoalojada conservar el emparejamiento de las Live Photos de Apple?
Una decisión condicional sobre un servidor doméstico para emparejar Apple Live Photo, con pruebas controladas, interpretación de resultados, reversión y preguntas frecuentes específicas.

¿Puedes importar Google Takeout y las copias de seguridad del teléfono en una sola biblioteca de fotos?
Una decisión condicional sobre un servidor doméstico para la importación combinada de fotos, con pruebas controladas, interpretación de resultados, reversión y preguntas frecuentes específicas.

¿Puede Immich usar una biblioteca externa sin hacerse cargo de los archivos?
Una decisión condicional sobre el servidor doméstico para la propiedad de bibliotecas externas de Immich, con pruebas controladas, interpretación de resultados, reversión y preguntas...

