Кажется, что по умолчанию при создании базы данных MySQL с помощью docker -compose по умолчанию используется latin1.
Вы можете переопределить это, передав следующую команду в свой db service:
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect='SET NAMES UTF8;' --innodb-flush-log-at-trx-commit=0
Я не уверен, что --sql_mode=""
там делает, просто передает аргумент команде по умолчанию? В таком случае вы, вероятно, добавили бы это в список аргументов.
После того, как вы перезапустили свои контейнеры, вы можете войти в систему mysql и запустить следующую SQL, чтобы подтвердить, что это теперь UTF-8:
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| utf8 | utf8_unicode_ci |
+--------------------------+----------------------+
1 row in set (0.00 sec)