20260703 サーバ移行05 Redmine » 履歴 » バージョン 1
sylow castle, 2026/07/03 10:19
| 1 | 1 | sylow castle | # 20260703 サーバ移行05 Redmine |
|---|---|---|---|
| 2 | |||
| 3 | 無敗でDBマイグレート言った。記事を執筆中にRedmineのコンテナをdocker compose down、docker compose upしたせいでログイン情報が切れて記事が吹っ飛んで一敗。 |
||
| 4 | |||
| 5 | - Redmineコンテナのアップデート |
||
| 6 | - /redmine以下で動かすための設定 |
||
| 7 | - MySQLの文字コード変更 |
||
| 8 | |||
| 9 | ## Redmineコンテナのアップデート |
||
| 10 | |||
| 11 | 使ったコンテナたち |
||
| 12 | |||
| 13 | ``` |
||
| 14 | version: '3.8' |
||
| 15 | |||
| 16 | services: |
||
| 17 | redmine: |
||
| 18 | # image: docker.io/redmine:3.4.4 |
||
| 19 | # image: docker.io/redmine:4.2.10 |
||
| 20 | # image: docker.io/redmine:5.1.12 |
||
| 21 | image: docker.io/redmine:6.1.3 |
||
| 22 | ``` |
||
| 23 | |||
| 24 | ### アップデートのやり方 |
||
| 25 | |||
| 26 | DB吹っ飛ぶと嫌なので毎回物理バックアップと論理バックアップを取る |
||
| 27 | |||
| 28 | 論理バックアップ(例) |
||
| 29 | ``` |
||
| 30 | systemctl start mysqld.service |
||
| 31 | mysqldump -u root -p redmine > redmine.3.4.4.sql |
||
| 32 | ``` |
||
| 33 | |||
| 34 | 物理バックアップ: |
||
| 35 | ``` |
||
| 36 | systemctl stop mysqld.service |
||
| 37 | cp -ar /var/lib/mysql /path/to/backup/mysql.3.4.4 |
||
| 38 | ``` |
||
| 39 | |||
| 40 | ## /redmine以下で動かすための設定 |
||
| 41 | |||
| 42 | コンテナの/usr/src/redmine/config.ruに設定を追加した。 |
||
| 43 | |||
| 44 | config.ruの内容はrailsにあわせてかバージョンによって若干違うけど変更点は同じ、applicationを起動しているコード(以下の例だとrun Rails.application)をmap "/redmine" do と endで囲うだけ |
||
| 45 | |||
| 46 | 変更後はこんな感じ: |
||
| 47 | ``` |
||
| 48 | # This file is used by Rack-based servers to start the application. |
||
| 49 | |||
| 50 | require_relative 'config/environment' |
||
| 51 | map "/redmine" do |
||
| 52 | run Rails.application |
||
| 53 | end |
||
| 54 | ``` |
||
| 55 | |||
| 56 | ### 永続化 |
||
| 57 | |||
| 58 | 毎回コンテナ内の資源を編集するのは嫌なのでホスト側のファイルを参照するようにする。redmineに関する設定なので/etc/redmineを切る |
||
| 59 | |||
| 60 | [root@roma02 redmine]# pwd |
||
| 61 | /etc/redmine |
||
| 62 | [root@roma02 redmine]# ls -lZ |
||
| 63 | 合計 8 |
||
| 64 | -rw-r--r--. 1 root root unconfined_u:object_r:container_file_t:s0 153 7月 3 18:45 config.ru |
||
| 65 | -rw-r--r--. 1 root root unconfined_u:object_r:var_lib_t:s0 2168 7月 3 18:48 docker-compose.yml |
||
| 66 | |||
| 67 | ### SELinux設定 |
||
| 68 | |||
| 69 | SELinuxで弾かれないようにコンテキストを変更する: |
||
| 70 | |||
| 71 | ``` |
||
| 72 | semanage fcontext -a -t container_file_t "/etc/redmine/config.ru" |
||
| 73 | restorecon -v /etc/redmine/config.ru |
||
| 74 | ``` |
||
| 75 | |||
| 76 | |||
| 77 | ## MySQLの文字コード変更 |
||
| 78 | |||
| 79 | MySQL5.7の時に作ったredmineなのでデフォルト文字コードと照合順序がutf8mb3のまま。 |
||
| 80 | 照合順序を一覧で見るSQL: |
||
| 81 | ``` |
||
| 82 | SELECT |
||
| 83 | table_name, |
||
| 84 | table_collation |
||
| 85 | FROM |
||
| 86 | information_schema.tables |
||
| 87 | WHERE |
||
| 88 | table_schema="redmine" |
||
| 89 | ; |
||
| 90 | ``` |
||
| 91 | |||
| 92 | ALTER文(例): |
||
| 93 | ``` |
||
| 94 | ALTER TABLE `issues` CONVERT TO CHARACTER SET utf8mb4; |
||
| 95 | ``` |
||
| 96 | |||
| 97 | 面倒臭いのでExcelでALTER文を生成した。シェルスクリプトが得意な人はそれがいいと思う。 |