Трябва да изчистите data_volume
преди да стартирате контейнера и sql файловете ще бъдат изпълнени. Този том data_volume
може да бъде премахнат с помощта на команда:docker volume rm data_volume
.
Основната причина за вашия проблем може да бъде намерена в docker-entrypoint.sh
. Когато стартирате контейнер mysql, той проверява директорията mysql /var/lib/mysql
съществува или не. Ако директорията не съществува (изпълнете я за първи път), тя ще стартира вашите SQL файлове.
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
Можете да получите повече подробности в Dockerfile източник