Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

259
Vistas
Política de reinicio del servicio Docker: detenga el servicio antiguo cuando el nuevo servicio esté realmente listo

Tengo tomcat ejecutándose como servicio docker en un enjambre. Cuando el servicio se inicia, carga una gran cantidad de datos en la memoria, lo que puede demorar, según la cantidad de datos, entre 10 y 30 minutos.

Mi problema es cuando actualizo el servicio (pedido: comenzar primero), el contenedor anterior se detiene antes de que el nuevo contenedor haya inicializado sus datos y, por lo tanto, no esté listo para usar.

Un enfoque prometedor me pareció la configuración de verificación de estado en mi docker-compose:

 healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/areyouready"] interval: 10s timeout: 10s retries: 30

La verificación de estado funciona bien, pero el servicio anterior también se cierra mientras que la prueba devuelve 1 (no es saludable) para el nuevo servicio.

También traté de manejar el SIGTERM en mi aplicación: el servicio en ejecución obtiene el sigterm y verifica si ya debería detenerse según el estado del nuevo servicio:

 Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { // via db access determine the state of the new started containers, but I don't know // how to prevent my tomcat from stopping here } }

Además de eso, no logré evitar que mi gato lo detuviera, simplemente no parecía ser la forma correcta.

Mi solución deseada sería configurar algo como esto:

 update_config: order: start-first a-kind-of-stop-condition: ["CMD", "curl", "-f", "http://localhost:8080/areyouready"]

la solicitud de condición debe ir al nuevo contenedor creado y, si tiene éxito, se puede detener el anterior.

Sería genial si pudiera señalarme en la dirección correcta.

Saludos cordiales, Sebastián

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda