Wie man behebt, dass der Docker-NodeJS-Container nicht herunterfährt

Wenn Sie einen NodeJS-Server in einem Docker-Container ausführen, werden Sie oft auf das Problem stoßen, dass der Container nicht ordnungsgemäß herunterfährt, sondern lange (mehrere Minuten) zum Herunterfahren braucht.

Um dies zu beheben, fügen Sie den folgenden Code zu Ihrer Haupt-NodeJS-Datei hinzu (typischerweise sollten Sie ihn am Anfang der Datei hinzufügen, um sicherzustellen, dass nichts seine Ausführung verhindert):

docker_node_signal_handlers.js
process.on('SIGTERM', function() {
  console.log('SIGTERM received, shutting down...');
  process.exit(0);
});
process.on('SIGINT', function() {
  console.log('SIGINT received, shutting down...');
  process.exit(0);
});

Dies wird NodeJS zwingen, (mehr oder weniger sofort) zu beenden, sobald entweder SIGINT oder SIGTERM empfangen wird. Typischerweise sendet Docker SIGTERM beim Herunterfahren des Containers.

Hintergrundinformationen

Siehe diese GitHub-Anleitung


Check out similar posts by category: NodeJS