😵
Dockerで導入したRedmineで絵文字が使えない事件
👀 概要
今回、DockerでRedmineのおひとり様インスタンスを建てました。
そこで問題が発生。
ウェルカムメッセージも文書も何もかも絵文字が使えない!!!
そこで行った方法を一応書いておきます...✏️
🚨 エラーメッセージ
2025-03-02 19:06:06 I, [2025-03-02T10:06:06.988922 #1] INFO -- : [2ce21932-d86f-4b5b-b05f-3e99ca9d72e0] Parameters: {"authenticity_token"=>"[REDACTED]", "document"=>{"category_id"=>"6", "title"=>"絵文字テスト", "description"=>"🚨"}, "commit"=>"作成", "project_id"=>"[REDACTED]"}
2025-03-02 19:06:07 I, [2025-03-02T10:06:07.020432 #1] INFO -- : [2ce21932-d86f-4b5b-b05f-3e99ca9d72e0] Current user: [REDACTED] (id=5)
2025-03-02 19:06:07 I, [2025-03-02T10:06:07.052295 #1] INFO -- : [2ce21932-d86f-4b5b-b05f-3e99ca9d72e0] Completed 500 Internal Server Error in 63ms (ActiveRecord: 24.3ms (13 queries, 0 cached) | GC: 5.2ms)
2025-03-02 19:06:07 F, [2025-03-02T10:06:07.057026 #1] FATAL -- : [2ce21932-d86f-4b5b-b05f-3e99ca9d72e0]
2025-03-02 19:06:07 [2ce21932-d86f-4b5b-b05f-3e99ca9d72e0] ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value: '🚨...' for column 'description' at row 1):
2025-03-02 19:06:07 [2ce21932-d86f-4b5b-b05f-3e99ca9d72e0]
2025-03-02 19:06:07 Causes:
2025-03-02 19:06:07 [2ce21932-d86f-4b5b-b05f-3e99ca9d72e0] Mysql2::Error (Incorrect string value: '🚨...' for column 'description' at row 1)
エラーメッセージを見てみると、「Incorrect string value」というエラーが出ています。
これはMySQLの文字セットが絵文字に対応していないということみたい。
☝️ 手順
- MySQLの文字セット設定を確認する
$ docker ps # MySQLのコンテナIDを取得 $ docker exec -it {コンテナID} bash $ mysql -p Enter password: {パスワード入力} mysql> SHOW VARIABLES LIKE 'character_set%';
character_set_database
やcharacter_set_server
がutf8
の場合、絵文字が扱えないのでutf8mb4
に変更する必要があります。
変更する方法は他の人も投稿していると思うので割愛。
詳細な手順は割愛しますが、my.cnf
の設定ファイルに下記があるか確認。my.cnf[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
- Redmineの設定を変更する
データベース関連の設定はconfig/database.yml
で管理されています。
(僕は/usr/src/redmine/config/database.yml
にありました。)config/database.ymldevelopment: adapter: mysql2 encoding: utf8mb4 # encodingをutf8mb4に明示的に指定する! database: [REDACTED] username: [REDACTED] password: [REDACTED] host: [REDACTED]
- コンテナをRestartする。
docker-compose restart
- 完了!
📕 まとめ
Dockerを最近触れ始めたので右も左もわからず大焦りでしたが、なんとか絵文字問題を解決することができました...
頑張って知識つけていこうと思います🤦♂️
Discussion