Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menyiapkan MySQL dan mengimpor dump dalam Dockerfile

Versi terbaru dari gambar buruh pelabuhan mysql resmi terbaru memungkinkan Anda untuk mengimpor data saat startup. Ini docker-compose.yml saya

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

Di sini, saya memiliki data-dump.sql saya di bawah docker/data yang relatif terhadap folder tempat penulisan buruh pelabuhan dijalankan. Saya memasang file sql itu ke direktori ini /docker-entrypoint-initdb.d pada wadah.

Jika Anda tertarik untuk melihat cara kerjanya, lihat docker-entrypoint.sh di GitHub. Mereka telah menambahkan blok ini untuk mengizinkan pengimporan data

    echo
    for f in /docker-entrypoint-initdb.d/*; do
        case "$f" in
            *.sh)  echo "$0: running $f"; . "$f" ;;
            *.sql) echo "$0: running $f"; "${mysql[@]}" < "$f" && echo ;;
            *)     echo "$0: ignoring $f" ;;
        esac
        echo
    done

Catatan tambahan, jika Anda ingin data tetap ada bahkan setelah wadah mysql dihentikan dan dihapus, Anda harus memiliki wadah data terpisah seperti yang Anda lihat di docker-compose.yml. Isi dari data container Dockerfile sangat sederhana.

FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8

VOLUME /var/lib/mysql

CMD ["true"]

Wadah data bahkan tidak harus dalam keadaan awal untuk persistensi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL menemukan semua orang tua secara rekursif

  2. Pembaruan langsung ke JCombobox di Jawa

  3. Data open source tumbuh:Memilih MySQL, NoSQL, atau keduanya

  4. Pencocokan seluruh kata dengan karakter titik di MySQL

  5. Bagaimana cara menyimpan IP di mySQL