Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

260
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda