プロジェクト

全般

プロフィール

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文を生成した。シェルスクリプトが得意な人はそれがいいと思う。