Кодировка в Docker
Кодировка сервера задаёт, в каких байтах хранятся строки новых таблиц. Выбор влияет на все объекты, которые создают уже после старта, пока параметры не сменят другим способом.
Сервис db
на mysql:9.7
с паролем demo,
томом csdata
и командой с набором utf8mb4
и согласованием utf8mb4_unicode_ci:
services:
db:
image: mysql:9.7
environment:
MYSQL_ROOT_PASSWORD: demo
command:
- mysqld
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- csdata:/var/lib/mysql
volumes:
csdata:
Фоновый подъём проекта:
docker compose up -d
Запрос переменной
character_set_server
внутри сервиса возвращает utf8mb4 -
сервер принял набор
из аргументов запуска:
docker compose exec db mysql -uroot -pdemo -e "SHOW VARIABLES LIKE 'character_set_server'"
Настройте сервис db на томе cslab с серверным набором utf8mb4 и согласованием utf8mb4_general_ci через аргументы запуска.
Запишите словами значение character_set_server после подъёма.