docker-up时如何改变mysql的特性?

当我保存中文string时,mysql会出现错误“exception值:
(1366,“不正确的string值:'\ xE5 \ xB0 \ x8F \ xE6 \ x98 \ x8E'列'name'在第1行”)“,我检查mysql的字符,它显示:

mysql> show variables like 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) 

而我的docker-compose.yml和其他人一样:

 web: image: yetongxue/docker_test:1.2 links: - "db" ports: - "8100:8000" volumes: - "/Users/yetongxue/docker_v/docker_test/media:/root/media" restart: always db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: qwerasdf MYSQL_DATABASE: docker_db restart: always volumes: - "/Users/yetongxue/docker_v/docker_test/db:/var/lib/mysql" 

我知道如何使用my.cnf设置mysql的字符,但是我怎样才能在docker-compose.yml中做到这一点? 有人知道吗? 谢谢!

撰写文件用于运行容器(并可以构build图像)。 您不能自定义docker-compose文件中的图像。 您需要创build一个扩展mysql映像的自定义映像。 创build一个Dockerfile:

 FROM mysql:5.7 RUN <command to update my.cnf> 

然后build立这个图像:

 docker build -t <image-name> . 

更新撰写文件:

 db: image: <image-name-specified-above>