суббота, 6 мая 2017 г.

Почему важно использовать exec в entrypoint скрипте

Если мы в entrypoint.sh просто сделаем вызов команды без exec:
#!/bin/bash
...
$@
В этом случае процесс запущенный из CMD (вызов произойдет на месте $@), будет создан дочерним, поэтому PID1 будет удерживать BASH, выполняющий entrypoint.sh. Поэтому SIGTERM будет получать bash, а не наше приложение в процессе, что означает, что оно будет вырублено после временной рамки на выключение, docker определяет это как 10 секунд, так и не узнав, что 10 секунд назад было предупреждение, что пора свернуть все свои работы.

Комментариев нет:

Отправить комментарий