Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memastikan Kesediaan MySQL dalam Docker Compose Sebelum Memulakan Perkhidmatan Bergantung?

Bagaimana untuk Memastikan Kesediaan MySQL dalam Docker Compose Sebelum Memulakan Perkhidmatan Bergantung?

Barbara Streisand
Lepaskan: 2024-12-24 13:01:14
asal
214 orang telah melayarinya

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

Mengesahkan Kesediaan Sambungan MySQL dalam Docker Compose

Dalam bidang kontena Docker, memastikan aplikasi bermula hanya apabila kebergantungan yang diperlukan sudah sedia adalah penting. Ini amat penting untuk pangkalan data seperti MySQL, yang perlu dimulakan dan disediakan sebelum menerima sambungan.

Dalam Docker Compose, pilihan depende_on dan healthcheck menyediakan cara untuk mengawal hubungan pergantungan antara bekas. Pilihan depende_on menentukan bahawa bekas harus menunggu sehingga kebergantungan yang ditentukan sihat sebelum bermula. Pilihan pemeriksaan kesihatan, sebaliknya, mentakrifkan ujian asas untuk menentukan kesihatan bekas.

Apabila cuba mengesahkan kesediaan MySQL, pelbagai kaedah telah diterokai:

  • Menyemak sama ada direktori pangkalan data dicipta: Walaupun mencipta direktori pangkalan data adalah langkah yang perlu, ia tidak menjamin MySQL bersedia untuk menerima sambungan.
  • Mendapatkan semula versi MySQL: Ujian ini memberikan maklumat tentang pelayan MySQL tetapi tidak menunjukkan sama ada ia sedia untuk digunakan.
  • Ping pentadbir MySQL : Kaedah ini menandakan bekas sebagai sihat, tetapi ia mungkin tidak menggambarkan MySQL dengan tepat kesediaan.

Penyelesaian yang memastikan MySQL sedia sebelum memulakan bekas lain adalah seperti berikut:

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
Salin selepas log masuk

Dalam konfigurasi ini, bekas api tidak akan bermula sehingga bekas db berada sihat, yang ditentukan oleh ujian "ping" dalam konfigurasi pemeriksaan kesihatan. Ujian "ping" mengesahkan bahawa pelayan MySQL boleh dicapai dan boleh menerima sambungan, memastikan bekas api boleh memulakan operasinya dengan selamat.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Kesediaan MySQL dalam Docker Compose Sebelum Memulakan Perkhidmatan Bergantung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan