mysqld
принимает параметр, который задает сценарии инициализации, и вы можете использовать его.
докер-compose.yml
version: "3.3"
services:
db:
image: mariadb:10.1
environment:
- MYSQL_ROOT_PASSWORD
volumes:
- ./init.sql:/script/init.sql
command: "--init-file /script/init.sql"
init.sql
UPDATE mysql.user SET authentication_string=PASSWORD("mihai") WHERE USER="root";
UPDATE mysql.user SET plugin="mysql_native_password";
.env
MYSQL_ROOT_PASSWORD=rootpassword
Запустите контейнер и проверьте его:
docker-compose up -d
docker-compose exec db mysql -hlocalhost -uroot -pmihai
select plugin from mysql.user where USER='root';
Вы видите, что плагин также был обновлен, поэтому оба сценария работали.
Вы также можете удалить команду и выполнить проверку с использованием оригинального пароля. Обязательно удаляйте тома между запусками.