Cara Melaksanakan Perintah Satu Kali dalam Docker Compose
Untuk menyediakan persekitaran Docker di mana arahan perlu dilaksanakan sekali sahaja, seperti mengisi pangkalan data, pendekatan yang disyorkan ialah menggunakan titik masuk skrip.
Skrip Entrypoint
Buat skrip titik masuk dalam imej bekas anda, biasanya dinamakan entrypoint.sh. Skrip ini akan menyemak sama ada permulaan pangkalan data telah selesai dan jika tidak, lakukan tindakan yang diperlukan.
Berikut ialah skrip titik masuk contoh berdasarkan imej WordPress rasmi:
#!/bin/bash set -e # Function to check if database initialization is needed is_init_needed() { # Insert database initialization check logic here return 0 } # Check if initialization is needed if is_init_needed; then # Perform database initialization echo "Initializing database..." /usr/bin/mysql -u "root" -p"$MYSQL_ROOT_PASSWORD" -h "mysql" < /usr/local/init.sql echo "Database initialized successfully." fi # Start the application exec "$@"
Konfigurasi Karang Docker
Dalam fail docker-compose.yml anda, nyatakan skrip titik masuk dalam kunci titik masuk untuk perkhidmatan yang memerlukan permulaan, seperti ini:
services: my_project: build: . entrypoint: ["./entrypoint.sh"] ...
Nota Tambahan
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perintah Satu Kali dalam Docker Compose dengan Skrip Entrypoint?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!