Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memastikan Pangkalan Data Aplikasi Docker Compose Saya Sedia Sebelum Dimulakan?

Bagaimanakah Saya Boleh Memastikan Pangkalan Data Aplikasi Docker Compose Saya Sedia Sebelum Dimulakan?

DDD
DDDasal
2024-12-11 15:23:11418semak imbas

How Can I Ensure My Docker Compose Application's Database is Ready Before Startup?

Memastikan Kesediaan Pangkalan Data untuk Aplikasi Karang Docker

Untuk mengelakkan pelaksanaan pramatang migrasi pangkalan data atau permulaan aplikasi, adalah penting untuk memastikan pangkalan data bekas beroperasi sepenuhnya sebelum bekas apl memulakan prosesnya. Menggunakan pemeriksaan kesihatan Docker Compose dan pilihan depende_on, mekanisme boleh diwujudkan untuk mengesahkan sambungan pangkalan data dan melambatkan permulaan aplikasi sehingga pangkalan data sedia.

Dalam contoh yang disediakan, pemeriksaan kesihatan untuk bekas pangkalan data (db) menggunakan mysqladmin perintah untuk ping localhost dan semak sama ada pangkalan data menerima sambungan. Ujian ini memastikan bahawa pangkalan data bukan sahaja tersedia tetapi juga boleh diakses.

Berikut ialah versi diubah suai fail Docker Compose yang disediakan:

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

Dengan konfigurasi ini, bekas api akan kekal dalam keadaan digantung sehingga bekas db berjaya melepasi pemeriksaan kesihatan, menunjukkan bahawa pangkalan data beroperasi sepenuhnya dan sedia untuk sambungan. Ini memastikan bahawa apl tidak akan cuba melakukan migrasi atau mula memproses sehingga pangkalan data boleh diakses, menghalang kemungkinan isu atau ralat integriti data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Pangkalan Data Aplikasi Docker Compose Saya Sedia Sebelum Dimulakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn