Решение найдено :манифесты находились в неверном каталоге. Должен быть в каталоге
/etc/puppetlabs/code/environments/production/manifests
Ваши контейнеры должны получать SIGTERM, как и все другие процессы в системе.
Загвоздка в том, что SIGTERM получает основной процесс в контейнере (, запущенный ENTRYPOINT ). Если контейнер запускает сценарий для запуска двоичного файла, важно exec
бинарный файл, чтобы он стал процессом контейнера, в противном случае SIGTERM будет получен интерпретатором оболочки, который обычно не пересылает его дочернему процессу.
AFAIK docker stop
сначала пробует SIGTERM в контейнере и ожидает, что он завершится в течение 10 секунд, если нет, он отправляет SIGKILL. Так что, если ваши контейнеры быстро останавливаются на docker stop
, все должно быть в порядке.