Eu estava procurando exatamente a mesma coisa, e agora, há uma maneira melhor de fazer isso.
O docker mysql escreve:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
Em um docker-compose mundo, pode-se passar esses argumentos através do "command" parte do serviço:
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
No meu caso de uso, eu só queria ativar os logs e especificar o caminho para o arquivo de log:
command: mysqld --general-log=1 --general-log-file=/var/log/mysql/general-log.log
Com os volumes adequados (por exemplo,
- ./logs/mysql.log:/var/log/mysql/general-log.log
), torna-se fácil alcançá-los. Isso é bastante simples e evita lidar com uma configuração local. Ele funcionará com qualquer imagens do MySQL Docker e manterá o
my.cnf
conforme enviado pela imagem.