20260702 サーバ移行04 RedmineのDocker化 » 履歴 » リビジョン 1
リビジョン 1/3
| 次 »
sylow castle, 2026/07/02 15:13
20260702 サーバ移行04 RedmineのDocker化¶
このご時世にredmine 3.4.4 stableをdocker化
負けたとこだけメモっとく
redmine環境¶
Before¶
- CentOS 7
- redmine 3.4.4stable
- MySQL 5.7
- Ruby 2.4.3
- Rails 4.2.8
After(暫定)¶
- Alma Linux 9
- redmine 3.4.4-passenger(dockerコンテナ)
- MySQL 8.0
- Ruby 2.4.4
- Rails 4.2.8
生で動いていたのをdockerに乗せたのが第一段階の肝。
今後さらにredmineコンテナのバージョン上げて行く予定。
MySQL¶
MySQL5.7から8.0への移行。
普通にインストールしてユーザーは
@show create user;@と@show grants for @;@で出た結果を新環境で実行してあげて終わり。
SELinux¶
redmineにはredmine/filesディレクトリというアップロードファイルを保存するディレクトリがある。
ファイルの移行はこれをもってこなきゃダメ。
コンテナ化の際はdocker-composeでボリュームを/usr/src/redmine/filesにマウントしてあげる
例えばこんな感じ:
docker-compose.yml
volumes:
# ホストの /var/lib/redmine/files をコンテナの files ディレクトリにマウント
- /var/lib/redmine/files:/usr/src/redmine/files
で、SELinuxが動いているとコンテナ内から/var/lib/redmine/filesにアクセスできなかったので一敗。
@setenforce 0@で動いたのでSELinuxが原因と確認
対処方法¶
# semanage fcontext -a -t container_file_t "/var/lib/redmine/files(/.*)?"
# semanage restorecon -Rv /var/lib/redmine/files/
サブディレクトリ運用¶
/redmine以下で運用しているのが鬼門になった。
/redmine以下をリバースプロキシしてあげても「ログイン」のリンクなんかが/redmine/loginじゃなくて/loginになるという事象が発生。
最終的にredmine(コンテナ内)のconfig.ruを直接編集して無理無理動かした。
Before:
#/usr/src/redmine# cat config.ru
# This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment', __FILE__)
run RedmineApp::Application
After:
#/usr/src/redmine# cat config.ru
# This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment', __FILE__)
map "/redmine" do
run RedmineApp::Application
end
GeminiとChat GPTを動員してバグ取り。Geminiは混雑してて途中でリタイアした。
nginxrの設定やedmineやRailsの設定をあちこち見た後究極的には
「/redmineをハードコードして無理やり動かせない?」
で上記の提案を貰って終了。(紆余曲折は省略する)なんかRackとかRailsのmiddleware周りっぽいというところだけ。
ChatGPTと共に何敗したか思い出せぬ
sylow castle さんが約2ヶ月前に更新 · 3件の履歴