Menyediakan Pangkalan Data dan Mengimport Dump dalam Dockerfile
Dalam persekitaran Docker, adalah perkara biasa untuk menghadapi kesukaran semasa mengkonfigurasi MySQL dan mengimport lambakan pangkalan data semasa proses membina. Untuk menyelesaikan isu ini, pertimbangkan pendekatan berikut:
Imej MySQL Docker rasmi termasuk ciri yang membolehkan import data pada permulaan. Ini menghapuskan keperluan untuk penciptaan pangkalan data manual dan membuang langkah import dalam Dockerfile. Untuk melaksanakan ini, cipta fail docker-compose.yml yang serupa dengan:
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, fail data-dump.sql harus terletak dalam direktori docker/data. Pemetaan volum akan menjadikannya boleh diakses dalam bekas di /docker-entrypoint-initdb.d.
Di sebalik tabir, skrip docker-entrypoint.sh dalam imej MySQL Docker termasuk blok kod yang melaksanakan SQL secara automatik fail yang ditemui dalam /docker-entrypoint-initdb.d:
for f in /docker-entrypoint-initdb.d/*; do case "$f" in *.sh) echo "<pre class="brush:php;toolbar:false">FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8 VOLUME /var/lib/mysql CMD ["true"]
Ini memastikan bahawa fail data-dump.sql dilaksanakan semasa permulaan kontena.
Untuk mengekalkan kegigihan data merentas permulaan semula dan pengalihan keluar kontena, adalah disyorkan untuk membuat bekas data yang berasingan. Fail Docker untuk bekas sedemikian boleh semudah:
Arahan CMD ["true"] digunakan untuk menghalang bekas daripada keluar. Bekas data tidak perlu berada dalam keadaan mula untuk memastikan data kekal.
Atas ialah kandungan terperinci Bagaimana untuk Mengimport Lambakan Pangkalan Data dengan Cekap ke dalam MySQL dalam Persekitaran Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!