ホームページ  >  に質問  >  本文

docker-compose ヘルスチェックに合格しましたが、依然として異常です

条件 compose 仕様はバージョン 3.0 から 3.8 で削除されましたが、現在は復活しています。 compose 仕様のバージョン v3.9 では、conditiondepends_on の長い構文形式のオプションとして使用できます。

Docker Compose を使用して MySQL および Java Web プロジェクトを開始します。 JavaWeb の起動には完全なデータを作成するために MySQL が必要なので、healthcheck

を使用します。

しかし、mysql の healthcheck に問題があります。これは私の docker-compose

リーリー

間違った記述は次のとおりです:

リーリー

コンソール出力:

リーリー

fubaquant が mysql healthcheck に依存しているため、fubaquant も起動されません

mysql コンテナのヘルスチェック ログは次のとおりです:

mysqlのヘルスチェックログを確認しましたが、これも健全です

###ご協力いただきありがとうございます###
P粉596161915P粉596161915236日前347

全員に返信(2)返信します

  • P粉316890884

    P粉3168908842024-02-27 00:28:40

    間違ったユーザーとパスワードを使用してヘルスチェックを実行しようとしているようです。あなたが持っている### ###健康診断: テスト: ["CMD"、"mysqladmin"、"-u$mysql"、"-p$123456"、"ping"、"-h"、"localhost"]

    $mysql

    $123456 は、これらの変数の値を解決しようとします。あなたが望むのは、以下を使用することです。 ###健康診断: テスト: ["CMD"、"mysqladmin"、"-u$MYSQL_USER"、"-p$MYSQL_PASSWORD"、"ping"、"-h"、"localhost"]

    これにより、ユーザー
    mysql
    とパスワード

    123456 (両方とも mysqlService で docker-compose として定義) を使用して mysaqladmin の実行が試行されます。環境変数)###

    返事
    0
  • P粉022140576

    P粉0221405762024-02-27 00:26:56

    1 秒間隔で 3 回の再試行のみを許可するようにヘルス チェックを構成しました。 compose が Java を開始すると、mysql サービスはこの 3 秒の遅延内に正常な状態に到達しないため、compose は停止し、このエラーを報告します。 再試行回数を増やすだけでうまくいきます

    返事
    0
  • キャンセル返事