El diablo se esconde en los detalles...
Tienes una definición doble de root en su env vars. root el usuario se crea de forma predeterminada con la contraseña de MYSQL_ROOT_PASSWORD . Luego solicita crear un segundo usuario "normal"... con exactamente el mismo nombre y contraseña (es decir, con MYSQL_USER y MYSQL_PASSWORD )
Si observa detenidamente su registro de inicio, verá un error
db_1 | ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for 'root'@'%'
En realidad, esto detiene el procesamiento posterior de sus archivos de inicio en docker-entrypoint-initdb.d y continúa con el resto del proceso de inicio de la imagen (es decir, reiniciar mysql después de la inicialización en el servidor temporal).
Simplemente suelte MYSQL_USER y MYSQL_PASSWORD en sus vars env, o establezca un usuario diferente a root e inmediatamente verá sus archivos de inicio procesados (no olvide vaciar su directorio de datos nuevamente).