Menyelesaikan masalah Persediaan Pangkalan Data dan Import Data dalam Fail Docker
Mencipta Fail Docker untuk projek LAMP boleh mencabar, terutamanya apabila menghadapi ralat yang berkaitan dengan MySQL persediaan dan import data. Artikel ini menangani isu biasa yang dihadapi semasa menyediakan MySQL dan mengimport dump menggunakan arahan Dockerfile.
Dockerfile yang disediakan mengandungi beberapa arahan penting untuk persediaan MySQL dan pemuatan data. Walau bagaimanapun, mesej ralat menunjukkan bahawa ia tidak boleh menyambung ke pelayan MySQL tempatan. Untuk menyelesaikan isu ini, kami boleh menggunakan pendekatan yang digariskan dalam penyelesaian di bawah.
Penyelesaian Menggunakan Imej Docker dengan Import Data
Versi terkini imej MySQL Docker rasmi menawarkan penyelesaian yang mudah untuk mengimport data semasa permulaan. Konfigurasi docker-compose.yml yang disediakan membenarkan import data daripada fail SQL yang ditentukan:
data: build: docker/data/. mysql: image: mysql ports: - "3307:3306" environment: MYSQL_ROOT_PASSWORD: 1234 volumes: - ./docker/data:/docker-entrypoint-initdb.d volumes_from: - data
Dalam konfigurasi ini, data-dump.sql diletakkan di bawah direktori docker/data. Direktori ini dipasang pada /docker-entrypoint-initdb.d dalam bekas MySQL.
Skrip docker-entrypoint.sh dalam imej MySQL termasuk blok yang menghuraikan fail dengan sambungan .sql dan melaksanakannya sebagai Pertanyaan SQL terhadap pangkalan data MySQL. Ini membolehkan pengimportan data semasa permulaan kontena.
Memastikan Kegigihan Data
Jika kegigihan data diperlukan walaupun selepas menghentikan dan mengalih keluar bekas MySQL, adalah disyorkan untuk menggunakan bekas data berasingan. Fail Docker untuk bekas data adalah mudah:
FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8 VOLUME /var/lib/mysql CMD ["true"]
Dengan memasang bekas data pada bekas MySQL, data berterusan walaupun bekas MySQL dihentikan. Ambil perhatian bahawa bekas data tidak perlu dijalankan untuk kegigihan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Masalah Persediaan MySQL dan Ralat Import Data dalam Projek LAMP Dockerized?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!