Bạn nên xóa data_volume
trước khi chạy vùng chứa và các tệp sql sẽ được thực thi. Tập này data_volume
có thể được gỡ bỏ bằng cách sử dụng lệnh:docker volume rm data_volume
.
Nguyên nhân gốc rễ của sự cố của bạn có thể được tìm thấy trong docker-entrypoint.sh
. Khi bạn chạy vùng chứa mysql, nó sẽ kiểm tra thư mục mysql /var/lib/mysql
tồn tại hay không. Nếu thư mục không tồn tại (chạy lần đầu), nó sẽ chạy các tệp SQL của bạn.
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
Bạn có thể biết thêm chi tiết tại Nguồn Dockerfile