Docker-compose: MySQL 接続の準備状況の確認
Docker Compose では、アプリケーション コンテナを開始する前にデータベース接続の可用性を確認できます。オーケストレーションにおける重要なステップ。これを実現するには、healthcheck および depend_on オプションが便利なソリューションを提供します。
ただし、MySQL の効果的なヘルス チェックを構成するには課題が生じる可能性があります。クエリで言及されているアプローチを検討し、その制限を評価してみましょう:
解決策は別のヘルスチェックコマンドにあります:
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 サイトの他の関連記事を参照してください。