Detaillierte Erläuterung des Problems des unendlichen Neustarts beim Ausführen der Docker-Umgebung des SpringBoot-Projekts

Detaillierte Erläuterung des Problems des unendlichen Neustarts beim Ausführen der Docker-Umgebung des SpringBoot-Projekts

Vielleicht habe ich angefangen, falsch zu denken, und meine Beschreibung des Problems ist vielleicht ein wenig chaotisch, aber ich hoffe, dass die möglichen Lösungen hier anderen helfen können, die in die gleiche Falle tappen wie ich.

Beschreibung: Das Springboot-Projekt wird im Docker-Image ausgeführt. Wenn man sich das Docker-Protokoll ansieht, wird das Projekt nach dem erfolgreichen Start nach etwa einer Minute automatisch neu gestartet, was dazu führt, dass nginx beim Zugriff auf die Website-Schnittstelle ein 502-Gateway oder etwas Ähnliches meldet. Es gibt zwei Server, einer ist ein Dateiserver, auf dem sehr einfacher Code zum Hoch- und Herunterladen von Dateien und Überprüfen von Token ausgeführt wird, und der andere führt eine Java-Anwendung aus. Beide Server aktualisieren das Projekt-Image gleichzeitig. Nach dem Ausführen tritt dieses Problem auf, was sehr seltsam ist.

Anschließend habe ich das Projekt in ein Jar-Paket gemacht und es mit java -jar xxx.jar direkt im Anwendungsserver ausgeführt. Dann blieb es an einigen Stellen hängen und konnte nicht weiter gestartet werden, oder es zeigte an, dass es beendet wurde.

Bild A

Wir vermuteten, dass der Projektspeicher verloren ging und der Prozess vom System beendet wurde. Daher wechselten wir zum vorherigen Docker-Image und das Ergebnis war dasselbe. Wir vermuteten, dass sich die Nginx-Konfiguration geändert hatte, aber es funktionierte immer noch nicht. Dann wechselten wir zu unserem eigenen Alibaba Cloud-Server, um das neueste Image auszuführen, und es gab kein Problem. Es war völlig normal. Das Ausführen des JAR-Pakets in Alibaba Cloud war ebenfalls normal. Wir vermuteten also, dass sich das System geändert haben könnte und dieses Problem verursachte. Also haben wir uns oben umgesehen und festgestellt

Die CPU-Auslastung ist zu hoch. Es gibt einen unbekannten Prozess, der sehr ungewöhnlich ist. Ich habe auf Baidu gesucht und herausgefunden, welchen Befehl dieser Cornd regelmäßig ausführt, also habe ich versucht, das Problem zu lösen. (PS: Und das wurde nicht von uns installiert, und wir haben das in der Online-Umgebung nie gemacht)

Überprüfen Sie zuerst den Status: systemctl status crond

Dann sehen Sie, welche Befehle konfiguriert sind: crontab -e

Ich habe die 0 geändert. Vorher war es *. Ich habe es auf 0 geändert, dann gespeichert und beendet.

Stoppen Sie dann den Dienst: systemctl stop crond

Überprüfen Sie abschließend top. Wenn der Prozess noch existiert, beenden Sie ihn direkt und löschen Sie ihn anschließend mit ojb. Das ist ein Mist. Ich habe einen halben Tag gebraucht, um das herauszufinden.

Dies ist das Ende dieses Artikels über das Problem des unendlichen Neustarts beim Ausführen in der Docker-Umgebung des SpringBoot-Projekts. Weitere verwandte Inhalte zum unendlichen Neustart des SpringBoot-Dockers finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detailliertes Tutorial zum Ausführen mehrerer Springboot mit Docker
  • So führen Sie das Springboot-Projekt im Docker aus
  • Implementierung eines laufenden Springboot-Projekts mit Docker

<<:  So verwenden Sie async await elegant in JS

>>:  Zusammenfassung wichtiger MySQL-Protokolldateien

Artikel empfehlen

Detaillierte Erklärung zur Verwendung von CSS3 RGB und RGBA (transparente Farbe)

Ich glaube, jeder Mensch ist sehr sensibel für Fa...

So verbergen Sie Elemente im Web und ihre Vor- und Nachteile

Beispiel-Quellcode: https://codepen.io/shadeed/pe...

Extrahieren Sie bestimmte Dateipfade in Ordnern basierend auf Linux-Befehlen

In letzter Zeit besteht der Bedarf, automatisch n...

Implementierung von LNMP für die separate Bereitstellung von Docker-Containern

1. Umweltvorbereitung Die IP-Adresse jedes Contai...

Was macht der legendäre VUE-Syntax-Sugar?

Inhaltsverzeichnis 1. Was ist syntaktischer Zucke...

So ändern Sie das Kennwort von mysql5.7.20 unter Linux CentOS 7.4

Nach dem Upgrade von MySQL auf Version 5.7 wurde ...

Vue-Interpretation der responsiven Prinzip-Quellcode-Analyse

Inhaltsverzeichnis Initialisierung initState() in...

Mehrere Gründe, HTML nicht zu komprimieren

Der Grund ist einfach: In HTML-Dokumenten entsprec...

Allgemeines Startskriptbeispiel für ein Linux-Java-Programm

Allerdings ist die Häufigkeit des Shell-Starts se...

HTML-Grundstruktur_Powernode Java Academy

Wenn wir lernen, Webseiten zu entwickeln, ist das...

Eine kurze Diskussion über reguläre JS-RegExp-Objekte

Inhaltsverzeichnis 1. RegExp-Objekt 2. Grammatik ...

Detaillierte Erklärung der Webseiten-Screenshot-Funktion in Vue

Seit Kurzem besteht im Projekt die Anforderung, B...

Layim in Javascript, um Freunde und Gruppen zu finden

Derzeit haben die Verantwortlichen von Layui die ...