Apabila bekerja dengan berbilang bekas Docker, menyelaraskan operasi kontena dan memastikan kesediaan boleh menjadi penting. Ambil contoh menggunakan bekas MySQL dan melaksanakan skrip setelah pangkalan data sedia. Walau bagaimanapun, menghadapi isu akibat pelaksanaan pramatang, seperti yang dinyatakan dalam soalan, menyerlahkan keperluan untuk mekanisme yang boleh dipercayai untuk mengesan ketersediaan MySQL.
Skrip Bash yang disediakan menawarkan penyelesaian praktikal, bergantung pada gelung yang berulang kali cuba untuk sambung ke MySQL sehingga sambungan yang berjaya diwujudkan. Walaupun berkesan, pendekatan ini mungkin tidak optimum untuk semua senario.
Sebaliknya, pertimbangkan memanfaatkan utiliti mysqladmin, tersedia dengan pakej mysql-client. mysqladmin menyediakan antara muka baris arahan untuk mengurus kejadian MySQL. Salah satu ciri bergunanya ialah arahan ping, yang cuba menyambung ke pelayan sasaran.
Untuk menyepadukan mysqladmin ke dalam proses menunggu, cukup gunakan gelung yang berulang kali melaksanakan ping mysqladmin dengan hos dan parameter pengesahan yang sesuai. Sebaik sahaja arahan tidak lagi mengembalikan ralat, menunjukkan sambungan MySQL yang berjaya, teruskan dengan operasi selanjutnya:
while ! mysqladmin ping -h"$DB_HOST" --silent; do sleep 1 done
Pendekatan ini menyediakan cara yang lebih ringan dan disasarkan untuk menunggu kesediaan MySQL, meminimumkan penggunaan sumber dan memastikan bekas yang boleh dipercayai penyelarasan.
Atas ialah kandungan terperinci Bagaimana dengan Anggun Menunggu Kesediaan MySQL dalam Bekas Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!