Fail Docker: Persediaan MySQL lancar dan Import Data
Menyediakan MySQL dan mengimport data semasa binaan Dockerfile boleh menjadi menakutkan, tetapi ia tidak mesti jadi. Mari kita atasi ralat biasa yang dihadapi oleh pembangun menggunakan coretan kod Dockerfile yang disediakan:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
Kunci untuk menyelesaikan isu ini terletak pada memahami cara imej MySQL Docker rasmi beroperasi. Dalam lelaran terbarunya, imej itu memperkenalkan ciri yang membenarkan import data semasa permulaan. Untuk memanfaatkan ciri ini, anda boleh mengubah suai fail Docker anda seperti berikut:
# Mount the data volume for persistent MySQL data storage VOLUME ["/etc/mysql", "/var/lib/mysql"] # Import database dump during Docker image build ADD dump.sql /tmp/dump.sql RUN mysql -u root -e "CREATE DATABASE mydb" RUN mysql -u root mydb < /tmp/dump.sql # Start MySQL daemon CMD ["mysqld"]
Dengan menambahkan baris CMD ["mysqld"] pada penghujung, imej Docker anda akan memulakan daemon MySQL secara automatik semasa penciptaan kontena, membenarkan untuk import data semasa proses binaan.
Tambahan Pertimbangan
Jika anda inginkan data MySQL anda berterusan walaupun bekas dihentikan atau dialih keluar, pertimbangkan untuk mencipta bekas data berasingan menggunakan Fail Docker yang serupa dengan yang di bawah:
FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8 VOLUME /var/lib/mysql CMD ["true"]
Bekas data ini memastikan data MySQL anda dipelihara walaupun bekas MySQL utama tidak berjalan.
Ringkasnya, dengan memanfaatkan MySQL rasmi Ciri import data imej Docker dan menggunakan bekas data yang berasingan untuk kegigihan, anda boleh menyediakan MySQL dan mengimport data dengan lancar dalam binaan Dockerfile anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Sediakan MySQL dan Import Data Dengan Lancar Dalam Binaan Fail Docker Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!