Anda harus menghapus data_volume sebelum menjalankan container dan file sql akan dieksekusi. Volume ini data_volume dapat dihapus dengan menggunakan perintah:docker volume rm data_volume .
Akar penyebab masalah Anda dapat ditemukan di docker-entrypoint.sh . Saat Anda menjalankan wadah mysql, ia memeriksa direktori mysql /var/lib/mysql ada atau tidak. Jika direktori tidak ada (jalankan pertama kali), itu akan menjalankan file SQL Anda.
if [ ! -d "$DATADIR/mysql" ]; then
//Some other logic here
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 ;;
*.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;;
*) echo "$0: ignoring $f" ;;
esac
echo
done
Anda bisa mendapatkan detail selengkapnya di sumber Dockerfile