Дьявол скрывается в деталях ...
У вас есть двойное определение root
в ваших переменных env. root
пользователь создается по умолчанию с паролем от MYSQL_ROOT_PASSWORD
. Затем вы просите создать второго «обычного» пользователя ... с точно таким же именем и паролем (то есть с MYSQL_USER
и MYSQL_PASSWORD
)
Если вы внимательно посмотрите свой журнал запуска, вы увидите ошибка
db_1 | ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for 'root'@'%'
Это фактически останавливает дальнейшую обработку ваших файлов инициализации в docker-entrypoint-initdb.d
и продолжается с остальной частью процесса запуска образа (т. е. перезапускается mysql после инициализации на временном сервере).
Просто добавьте MYSQL_USER
и MYSQL_PASSWORD
в свои env vars или укажите другого пользователя, нежели root
, и вы сразу увидите, что ваши файлы инициализации обработаны (не забудьте снова очистить каталог данных).