条件
compose 仕様はバージョン 3.0 から 3.8 で削除されましたが、現在は復活しています。 compose 仕様のバージョン v3.9 では、condition
をdepends_on
の長い構文形式のオプションとして使用できます。
Docker Compose を使用して MySQL および Java Web プロジェクトを開始します。 JavaWeb の起動には完全なデータを作成するために MySQL が必要なので、healthcheck
を使用します。しかし、mysql の healthcheck
に問題があります。これは私の docker-compose
間違った記述は次のとおりです:
リーリーコンソール出力:
リーリーfubaquant が mysql healthcheck に依存しているため、fubaquant も起動されません
mysql コンテナのヘルスチェック ログは次のとおりです:
mysqlのヘルスチェックログを確認しましたが、これも健全です
###ご協力いただきありがとうございます###
間違ったユーザーとパスワードを使用してヘルスチェックを実行しようとしているようです。あなたが持っている### ###健康診断: テスト: ["CMD"、"mysqladmin"、"-u$mysql"、"-p$123456"、"ping"、"-h"、"localhost"]
$mysqlと
これにより、ユーザー とパスワード$123456
は、これらの変数の値を解決しようとします。あなたが望むのは、以下を使用することです。###健康診断: テスト: ["CMD"、"mysqladmin"、"-u$MYSQL_USER"、"-p$MYSQL_PASSWORD"、"ping"、"-h"、"localhost"]
123456
(両方とも
mysqlService で docker-compose として定義) を使用して
mysaqladminの実行が試行されます。環境変数)###
1 秒間隔で 3 回の再試行のみを許可するようにヘルス チェックを構成しました。 compose が Java を開始すると、mysql サービスはこの 3 秒の遅延内に正常な状態に到達しないため、compose は停止し、このエラーを報告します。 再試行回数を増やすだけでうまくいきます