Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengimport Lambakan Pangkalan Data dengan Cekap ke dalam MySQL dalam Persekitaran Docker?

Bagaimana untuk Mengimport Lambakan Pangkalan Data dengan Cekap ke dalam MySQL dalam Persekitaran Docker?

Barbara Streisand
Lepaskan: 2024-12-11 15:14:12
asal
817 orang telah melayarinya

How to Efficiently Import Database Dumps into MySQL within a Docker Environment?

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

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"]
Salin selepas log masuk
: running $f"; . "$f" ;; *.sql) echo ": running $f"; "${mysql[@]}" < "$f" && echo ;; *) echo ": ignoring $f" ;; esac echo done

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!

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