現象(状態)
日本語を保存したところ、格納されたデータが ????
になってしまって悲しい状態のときに 。
大切なこと
コンテナ作成時に文字コードを指定しないといけません*1。
結論
以下のような docker-compose.yml
を書きます*2。command:
で文字コードを指定します。volumes
はまあ良きに計らうといいと思います。
version: '3' services: mysql: image: mysql command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: 'KOKONI_PASSWORD_GA_HAIRU' volumes: - ./mysql_data:/var/lib/mysql
補足
- 上記に加えて
ports:
を設定し、ホスト側の空きポートにどんどん割り当てていけばどんどん MySQL が建てられます - 私は上記に加えて念のため、コンテナ側の
/etc/mysql/mysql.conf.d/mysqld.cnf
や/opt
を共有しています*3 - また私は、
command:
ではさらに--secure-file-priv=""
を指定しています