Агент ECS останавливается и перезапускает контейнер Docker после приостановки Java-приложения Spring Boot при удаленной отладке - PullRequest
0 голосов
/ 24 октября 2019

Я заметил проблему, когда я удаленно отлаживал приложение SpringBoot, работающее в док-контейнере ECS на экземпляре EC2 (управляемое заданием), если я делаю паузу слишком долго (скажем, нужно исследовать или поговорить с членами команды) - после примерноЧерез 10 минут AWS убивает контейнер и запускает его снова, потому что он не считается живым.

Я предполагаю, что это потому, что точка останова приостановлена ​​во всех потоках.

Я не знаю, какая гонкаусловия, которые я мог бы ввести, если бы я сделал паузу только в текущем потоке, поэтому не пытался изменить это.

Есть ли какой-либо рекомендуемый способ справиться с этой ситуацией при необходимости удаленной отладки?

1 Ответ

0 голосов
/ 27 октября 2019

Вы можете проверить событие службы ECS, чтобы точно знать, почему ваша задача была прекращена, скорее всего, эта задача рассматривается как unhealthy. Если да, то можно выполнить одно из следующих действий:

  1. Измените параметры, чтобы сделать их длиннее, прежде чем они будут считаться нездоровыми
  2. Отключите проверку работоспособности, если вы используете маршрутизацию Application LB с помощьюНапример, это не разрешено

В идеале, для целей отладки и разработки, мы можем избежать удаленной отладки с помощью задачи AWS, запустив ваше приложение в локальной системе. Если вам нужна какая-либо инфраструктура AWS для начальной загрузки / запуска приложения, вы можете просто войти в систему и получить токен доступа раньше.

...