首頁 > 資料庫 > mysql教程 > 如何在啟動依賴服務之前確保 Docker Compose 中的 MySQL 準備就緒?

如何在啟動依賴服務之前確保 Docker Compose 中的 MySQL 準備就緒?

Barbara Streisand
發布: 2024-12-24 13:01:14
原創
214 人瀏覽過

How to Ensure MySQL Readiness in Docker Compose Before Starting Dependent Services?

在Docker Compose 中驗證MySQL 連線準備情況

在Docker 容器領域,確保應用程式僅在其所需的依賴項準備就緒時才啟動至關重要。這對於像 MySQL 這樣的資料庫尤其重要,它們需要在接受連接之前進行初始化和準備。

在 Docker Compose 中,depends_on 和 healthcheck 選項提供了一種控制容器之間依賴關係的方法。 dependent_on 選項指定容器應等到指定的依賴關係正常後再啟動。另一方面,healthcheck 選項定義了一個基本測試來確定容器的健康狀況。

在嘗試驗證MySQL 就緒情況時,已經探索了各種方法:

  • 檢查資料庫目錄是否建立:雖然建立資料庫目錄是必要的步驟,但它並不能保證MySQL已準備好接受連線。
  • 檢索 MySQL 的版本:此測試提供有關 MySQL 伺服器的信息,但不指示它是否已準備好使用。
  • Ping MySQL 管理員: 此方法將容器標記為健康,但可能無法準確反映MySQL 的情況

在啟動其他容器之前確保MySQL 的情況

version: "2.1"
services:
    api:
        build: .
        container_name: api
        ports:
            - "8080:8080"
        depends_on:
            db:
                condition: service_healthy
    db:
        container_name: db
        image: mysql
        ports:
            - "3306"
        environment:
            MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
            MYSQL_USER: "user"
            MYSQL_PASSWORD: "password"
            MYSQL_DATABASE: "database"
        healthcheck:
            test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
            timeout: 20s
            retries: 10
登入後複製

在啟動其他容器之前確保MyMy就緒的解決方案如下:

在此配置中,直到db 容器啟動後,api容器才會啟動。健康,由健康檢查配置中的“ping”測試確定。 「ping」測試驗證 MySQL 伺服器是否可達並且可以接受連接,確保 api 容器可以安全地啟動其操作。

以上是如何在啟動依賴服務之前確保 Docker Compose 中的 MySQL 準備就緒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板