Недостатков использования флага - init нет. Тем не менее, процесс, который становится идентификатором PID 1 в вашем контейнере, не охватывает все функции процесса init.
В большинстве случаев это не должно быть проблемой, так как вам нужна только обработка сигналов и дочерних процессов.
При каких обстоятельствах было бы лучше избегать использования --init?
Если вы закодировали свое приложение для обработки СИГНАЛОВ, например, в NodeJS:
const registerSignals = () => {
process.on('SIGTERM', () => {
console.log('SIGTERM received');
shutDown(0);
});
process.on('SIGINT', () => {
console.log('SIGTERM received');
shutDown(0);
});
}
тогда вы можете избежать использования - init или tini
(Убедитесь, что вы используете exec form при запуске вашего контейнера, если хотите, чтобы приведенный выше фрагмент работал)
В случае отсутствия серьезных недостатков: почему --init не является настройкой по умолчанию?
Потому что сделать ваши контейнеры SIGNAL осведомленными, как показывает мой фрагмент, не так сложно, и, кроме того, у вас может быть какой-то экзотический случай для PID 1, который tini не покрывает, так что нет веских оснований для введения tini по умолчанию во все контейнеры.