Docker環境で動かしているRedmineで日本語の何かしらを入力するとInternal errorが発生して少しハマったのでメモしておきます。
TL;DR
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
をdbコンテナに付与してやれば良いが、既存のものに追加しても起動に失敗したのでvolumeも破棄して再構築した。
詳細
日本語のプロジェクトやチケット、ロールなどなどを登録しようとするとInternal errorが発生したので、日本語も許容できるように変更しようとしました。
調べたところmy.cnfを編集するか、mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
を実行してやることで対応できます。
が、既存のstorage volumeをマウントしているDBコンテナに適用できず、初期化再構築すると上手く動きました。
最終的なdocker-compose.yml
version: '2'
services:
redmine:
image: redmine
ports:
- 4444:3000
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: password
depends_on:
- db
restart: always
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: redmine
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
volumes_from:
- datastore
restart: always
datastore:
image: busybox
volumes:
- redmine-data:/var/lib/mysql
volumes:
redmine-data:
driver: local