Esta es la contestación más acertada que te podemos compartir, pero primero estúdiala pausadamente y analiza si se puede adaptar a tu trabajo.
Solución:
Entonces necesitas usar un Dockerfile
en este caso y manejarlo como a continuación
FROM mysql:5.7.21
RUN echo "USE mysql;" > /docker-entrypoint-initdb.d/timezones.sql && mysql_tzinfo_to_sql /usr/share/zoneinfo >> /docker-entrypoint-initdb.d/timezones.sql
Esto asegura que cuando se cargue el contenedor mysql, cargará toda la información de la zona horaria. Ahora puedes usarlo usando variables de entorno.
Variable ambiental
mysqldb:
#image: mysql:5.7.21
build: .
#container_name: mysql_container
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- TZ=Europe/Sofia
Usarlo con un archivo de configuración es un problema. Cuando inicie la base de datos, le dará un error.
mysqldb_1 | 2018-04-24T12:29:43.169214Z 0 [Warning] InnoDB: New log files created, LSN=45790
mysqldb_1 | 2018-04-24T12:29:43.215187Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
mysqldb_1 | 2018-04-24T12:29:43.281229Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 2a87fec6-47bb-11e8-9f1e-0242ac110002.
mysqldb_1 | 2018-04-24T12:29:43.284010Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
mysqldb_1 | 2018-04-24T12:29:43.284404Z 0 [ERROR] Fatal error: Illegal or unknown default time zone 'Europe/Sofia'
mysqldb_1 | 2018-04-24T12:29:43.284567Z 0 [ERROR] Aborting
Esto se debe a que necesita que la zona horaria ya se haya cargado. Es posible arreglar esto también, pero es demasiado complicado. Iré con la variable de entorno solo porque eso significa que cuando el contenedor se inicia, la zona horaria ya está configurada.
el valor debe ser
default_time_zone=Europe/Sofia
comprobar detalles
Pero esto podría generar un error como este al reiniciar el servicio mysql, por lo que debe usar el siguiente comando antes de editar el archivo custom.cnf.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p