ホームページ >データベース >mysql チュートリアル >Docker Compose で MySQL 接続の準備が整っていることを確認する方法

Docker Compose で MySQL 接続の準備が整っていることを確認する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-14 11:33:17474ブラウズ

How to Ensure MySQL Connection Readiness in Docker Compose?

Docker-compose: MySQL 接続の準備状況の確認

Docker Compose では、アプリケーション コンテナを開始する前にデータベース接続の可用性を確認できます。オーケストレーションにおける重要なステップ。これを実現するには、healthcheck および depend_on オプションが便利なソリューションを提供します。

ただし、MySQL の効果的なヘルス チェックを構成するには課題が生じる可能性があります。クエリで言及されているアプローチを検討し、その制限を評価してみましょう:

  • MySQL データ ディレクトリの存在の確認: これはデータベース ファイルの存在を検証しますが、 MySQL が実行されて接続を受け入れていることは保証されません。
  • MySQL バージョンの取得: このアプローチでは、 MySQL は存在しますが、接続の準備ができていることはまだ示されていません。
  • 管理者に ping を送信します: このアクションは、コンテナーを正常であるとマークしますが、データベースが完全に動作し、クライアントを受け入れていることを保証するものではありません。

解決策は別のヘルスチェックコマンドにあります:

test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]

このコマンドを直接実行しますローカルホスト上の MySQL サーバーの可用性をテストし、接続の準備ができているかどうかの信頼できる指標として機能します。このヘルス チェックを使用すると、MySQL が完全に初期化され、ネットワーク接続を通じてアクセスできる場合にのみアプリケーション コンテナが起動するようにすることができます。

Docker Compose ファイルに、次のようにこのヘルス チェックを組み込むことができます。

services:
    api:
        ...
        depends_on:
          db:
            condition: service_healthy
    db:
        ...
        healthcheck:
            test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
            timeout: 20s
            retries: 10

この構成では、API コンテナは DB コンテナのヘルスチェックが成功するまで待機してから開始するため、MySQL が接続を受け入れる準備が整っていることが確認され、次のようなリスクが最小限に抑えられます。起動前の移行またはアプリケーションの障害。

以上がDocker Compose で MySQL 接続の準備が整っていることを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。