SpringBoot プロジェクトの Docker 環境を実行するときに発生する無限再起動問題の詳細な説明

SpringBoot プロジェクトの Docker 環境を実行するときに発生する無限再起動問題の詳細な説明

もしかしたら私の考え方が間違っていたのかもしれないし、問題の説明が少し乱雑だったのかもしれないが、ここでの解決策が私と同じ問題に遭遇した他の人たちの役に立つことを願っている。

説明: Springboot プロジェクトは Docker イメージで実行されます。Docker ログを見ると、プロジェクトが正常に開始された後、約 1 分後に自動的に再起動し、Web サイトのインターフェイスにアクセスすると nginx が 502 ゲートウェイなどを報告します。サーバーは 2 つあり、1 つはファイル サーバーで、ファイルのアップロードとダウンロード、トークンの検証を行う非常に単純なコードを実行し、もう 1 つは Java アプリケーションを実行します。両方のサーバーが同時にプロジェクト イメージを更新しています。実行後、この問題が発生しましたが、これは非常に奇妙です。

次に、プロジェクトを jar パッケージにして、java -jar xxx.jar を使用してアプリケーション サーバーで直接実行しました。すると、いくつかの場所で停止し、起動を続行できなくなったり、強制終了されたと表示されたりしました。

画像A

プロジェクトのメモリリークが原因でプロセスがシステムによって強制終了されたのではないかと疑い、以前のdockerイメージに変更しましたが、結果は同じでした。nginxの設定が変わったのではないかと疑いましたが、それでもうまくいきませんでした。その後、独自のAlibaba Cloudサーバーに変更して最新のイメージを実行したところ、問題はありませんでした。まったく正常でした。Alibaba Cloudでjarパッケージを実行しても正常でした。そこで、システムが変更されてこの問題が発生したのではないかと疑いました。そこでtopを見てみたところ、

CPU 使用率が高すぎます。非常に異常な未知のプロセスがあります。Baidu で検索して、このコードが定期的に実行するコマンドがわかったので、解決しようとしました。(追記: これは私たちがインストールしたものではなく、オンライン環境でこれを実行したこともありません)

まずステータスを確認します: systemctl status crond

次に、設定されているコマンドを確認します: crontab -e

0 を変更しました。以前は * でした。0 に変更し、保存して終了しました。

次にサービスを停止します: systemctl stop crond

最後に、top をチェックします。プロセスがまだ存在する場合は、直接 kill してから ojbk します。残念です。解決するのに半日かかりました。

SpringBoot プロジェクトの docker 環境で実行する場合の無限再起動問題に関するこの記事はこれで終わりです。SpringBoot docker 無限再起動に関するその他の関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerで複数のSpringbootを実行するための詳細なチュートリアル
  • DockerでSpringbootプロジェクトを実行する方法
  • Docker で Springboot プロジェクトを実行する実装

<<:  JS で async await をエレガントに使用する方法

>>:  重要なmysqlログファイルの概要

推薦する

Vue3+Vantコンポーネントを使用してアプリの検索履歴機能を実装する(サンプルコード)

現在、新しいアプリプロジェクトを開発中です。私にとっても初めてのアプリ開発です。チームで調査と検討を...

コードを通じてHTMLエスケープ文字を識別する方法について説明します

データ内に次のような特徴を持つ「 ' 」などの文字が含まれることがあります。 &# ...

Vue3の組み込みコンポーネントであるTeleportの使い方を詳しく説明します

目次1. テレポートの使用2. モーダルダイアログコンポーネントを完成させる3. コンポーネントのレ...

TypeScript を使用して Vue3 で axios をカプセル化する詳細な例

この axios パッケージは、vue3 デモで使用されます。便宜上、element-plus は ...

MySQLクエリ書き換えプラグインの使用

クエリ書き換えプラグインMySQL 5.7.6 以降、MySQL Server は、サーバーが実行す...

Docker を使用して Spring Boot をデプロイする方法

Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Doc...

Ubuntu 18.04 での Pycharm インストール チュートリアルの実装

方法1: Pycharmをダウンロードしてインストールするダウンロードアドレス: https://w...

CSS3を使用してフォントカラーグラデーションを実装する

Animation.css を使うと公式サイトのフォントがだんだんと変わっていくのが分かりました。c...

LinuxのバックグラウンドでPythonプログラムを実行するいくつかの方法

1. 最初の方法は、unhup コマンドを直接使用してプログラムをバックグラウンドで実行することです...

aタグ内のテキストを非表示にして画像を表示するには?360モードレンダリングに対応

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

MySql バッチに挿入するときにデータの重複を避ける方法

目次序文1. ignore を挿入2. 重複キーの更新時3. を置き換える要約する序文Mysql は...

Baota Linux パネル コマンド リスト

目次Pagodaをインストールする管理塔Nginx サービス管理Apache サービス管理MySQL...

JavaScriptタイマーとボタン効果設定の詳細な説明

タイマー効果: <div> <font id='timeCount'...

CSS3で作成した画像スクロール効果

成果を達成する実装コードhtml <base href="https://s3-us...

Webpack-cliが正常にインストールされたら、詳細についてはwebpack -vエラーケースを確認してください。

目次質問1. webpack webpack-cliをインストールする2. webpackのバージョ...