操作
サポート #67
未完了機能 #64: Redmine開発環境 LIME2025テーマ導入プロジェクト
設置はどのようにおこなうべきか
ステータス:
進行中
優先度:
通常
担当者:
-
開始日:
2025-05-12
期日:
進捗率:
0%
予定工数:
説明
子課題3: 設置はどのようにおこなうべきか¶
🎯 目的¶
- 最も安全で確実なテーマ設置方法を決定
- ダウンタイムを最小化する手法の確立
- ロールバック可能な設置方式の設計
📋 作業内容¶
1. 設置方法の選択肢調査¶
- 直接ファイルコピー方式
- Docker Volume マウント方式
- Git submodule 方式
- シンボリックリンク方式
2. 各方式のメリット・デメリット分析¶
# 方式例:Docker Volume マウント
docker-compose.yml:
redmine-dev:
volumes:
- ./themes/LIME2025:/usr/src/redmine/public/themes/LIME2025
3. 設置環境の前提条件確認¶
- 現在のディレクトリ権限
- Dockerコンテナの設定
- ファイルシステムの制約
4. バックアップ・復旧戦略¶
- 既存テーマのバックアップ方法
- 設置前後の比較検証
- 緊急時のロールバック手順
✅ 合格基準¶
-
安全性
- 既存システムへの影響最小
- 設置失敗時の自動復旧機能
- 作業前の完全バックアップ
-
確実性
- 手順の再現性100%
- 設置成功の確認方法明確
- 異常時の検知機構
-
効率性
- ダウンタイム5分以内
- 作業時間30分以内
- 自動化可能な部分の特定
-
保守性
- 設置状況の可視化
- ログの自動記録
- 更新時の手順最小化
🛠️ 検討要素¶
- Docker環境での最適化
- SSL証明書への影響防止
- 既存データの保護
- 将来的なCI/CD対応
📋 提出物¶
- 推奨設置方法の決定書
- 各方式の比較表
- リスク分析シート
- 緊急時対応フロー図
Redmine Admin さんが3日前に更新
設置方法の検討 - 完了報告¶
🎯 推奨設置方法の決定¶
最適解: Docker Volume + 直接コピー方式
📋 各方式の分析結果¶
1. 直接ファイルコピー方式 ✅ (推奨)¶
# 現在の設置方法(推定)
docker cp /path/to/LIME2025 redmine-dev_redmine_1:/usr/src/redmine/public/themes/lime_2025
メリット:
- ✅ 最もシンプルで確実
- ✅ ダウンタイムほぼゼロ
- ✅ 権限問題なし
- ✅ 即座に反映
デメリット:
- ❌ テーマ更新時は手動作業必要
- ❌ コンテナ再作成時は再設置必要
2. Docker Volumeマウント方式(検討)¶
volumes:
- ./themes:/usr/src/redmine/public/themes/custom
メリット:
- ✅ ホストから直接編集可能
- ✅ バージョン管理しやすい
- ✅ 開発効率高い
デメリット:
- ❌ 権限管理が複雑
- ❌ Docker Compose変更が必要
- ❌ 本番環境で非推奨
3. Git Submodule方式(検討)¶
git submodule add https://github.com/user/theme themes/lime_2025
メリット:
- ✅ バージョン管理が優秀
- ✅ チーム開発に適している
- ✅ ロールバック簡単
デメリット:
- ❌ 設定が複雑
- ❌ Gitリポジトリが必要
- ❌ 運用コストが高い
🏗️ 推奨アーキテクチャ¶
現状最適化¶
graph LR
A[ホスト: LIME2025] -->|docker cp| B[コンテナ: themes/lime_2025]
B --> C[Redmine: テーマ適用]
D[バックアップ] --> E[自動復旧スクリプト]
デプロイプロセス¶
#!/bin/bash
# deploy_theme.sh
set -e
# 1. バックアップ
docker exec redmine-dev_redmine_1 tar -czf /tmp/themes_backup.tar.gz /usr/src/redmine/public/themes/
# 2. 新テーマ設置
docker cp ./LIME2025 redmine-dev_redmine_1:/usr/src/redmine/public/themes/lime_2025
# 3. 権限設定
docker exec redmine-dev_redmine_1 chmod -R 755 /usr/src/redmine/public/themes/lime_2025
# 4. 確認
docker exec redmine-dev_redmine_1 ls -la /usr/src/redmine/public/themes/lime_2025
🛡️ 安全対策¶
1. バックアップ戦略¶
- 自動バックアップ: 設置前に必須実行
- バックアップ保管: 7日間保持
- 復旧手順: 自動化スクリプト準備
2. ロールバック戦略¶
# 緊急時ロールバック
docker exec redmine-dev_redmine_1 rm -rf /usr/src/redmine/public/themes/lime_2025
docker exec redmine-dev_redmine_1 tar -xzf /tmp/themes_backup.tar.gz -C /
3. 検証手順¶
- テーマファイル存在確認
- 権限適切性確認
- Redmine再起動不要(確認済み)
- Web UI での表示確認
⚡ パフォーマンス最適化¶
ダウンタイム最小化¶
- Hot Swap: Redmine再起動不要
- 段階的適用: 管理画面でのテーマ切り替え
- キャッシュ考慮: ブラウザキャッシュクリア案内
効率化¶
- 一括デプロイ: 複数環境同時更新
- 自動化: CI/CD パイプライン準備可能
- 監視: ログ記録・異常検知
🔄 運用手順の確立¶
標準手順¶
- 事前確認: 現在のテーマバックアップ
- 設置実行: docker cp コマンド
- 権限調整: chmod 755 設定
- 動作確認: Web UI チェック
- 記録: 変更ログ更新
緊急時対応¶
- 問題検知: 自動アラート
- 即座停止: テーマ無効化
- ロールバック: バックアップからの復旧
- 原因調査: ログ分析
✅ 結論¶
推奨設置方法: 直接コピー方式 + 自動化スクリプト
- シンプルかつ確実
- 運用負荷最小
- トラブル時の対応容易
- 将来的な拡張性確保
現在の設置も最適な方法で実装されており、運用継続推奨。
Redmine Admin さんが3日前に更新
LIME2025テーマ設置方法の検討結果¶
🎯 推奨設置方法: Docker Volume マウント方式
理由¶
- 可逆性: コンテナ再構築時も永続化
- 管理容易性: 定義ファイルで設定管理
- バックアップ容易性: ファイルシステムレベルでバックアップ
🔍 各方式の比較分析¶
1. Docker Volume マウント方式 ⭐推奨¶
redmine-dev:
volumes:
- ./themes/LIME2025:/usr/src/redmine/public/themes/LIME2025
メリット:
- ✅ 永続化が容易
- ✅ ホスト側からファイル編集可能
- ✅ バージョン管理しやすい
- ✅ ロールバックが簡単
デメリット:
- ⚠️ docker-compose.yml の修正が必要
- ⚠️ コンテナ再起動が必要
2. 直接ファイルコピー方式
docker cp ./LIME2025 redmine-dev_redmine_1:/usr/src/redmine/public/themes/
メリット:
- ✅ 即座に適用可能
- ✅ 設定ファイル変更不要
デメリット:
- ❌ コンテナ再構築で消失
- ❌ バックアップが困難
- ❌ バージョン管理しにくい
3. Git Submodule方式
redmine-dev:
volumes:
- ./themes:/usr/src/redmine/public/themes
メリット:
- ✅ バージョン管理が厳密
- ✅ マルチテーマ管理に適している
デメリット:
- ⚠️ Gitの知識が必要
- ⚠️ 設定が複雑
🛠️ 推奨設置手順¶
前準備¶
- 現在の状態確認
cd /root/redmine-dev
docker-compose ps
- バックアップ作成
docker exec redmine-dev_redmine_1 cp -r /usr/src/redmine/public/themes /backup/
実装手順¶
ステップ1: テーマディレクトリ準備¶
mkdir -p /root/redmine-dev/themes
ステップ2: LIME2025テーマコピー¶
# ローカルからサーバーへ
scp -r C:\Users\ito\Desktop\LIME2025 vps-root:/root/redmine-dev/themes/
ステップ3: docker-compose.yml修正¶
# redmine-devサービスにボリューム追加
redmine-dev:
volumes:
- redmine_dev_files:/usr/src/redmine/files
- ./themes/LIME2025:/usr/src/redmine/public/themes/LIME2025 # 追加
ステップ4: サービス再起動¶
cd /root/redmine-dev
docker-compose restart redmine-dev
ステップ5: 権限設定¶
docker exec redmine-dev_redmine_1 chmod -R 755 /usr/src/redmine/public/themes/LIME2025
📋 リスク分析と対策¶
主要リスク¶
-
設置失敗: コンテナ起動エラー
- 対策: 段階的実行とテスト
-
権限問題: ファイルアクセスエラー
- 対策: 明示的な权限设定
-
既存データ破損: 操作ミス
- 対策: 事前バックアップ必須
緊急時ロールバック手順¶
# 1. 問題のあるマウントを無効化
docker-compose down
# 2. バックアップから復元
docker exec redmine-dev_redmine_1 cp -r /backup/themes/* /usr/src/redmine/public/themes/
# 3. 元の設定で起動
docker-compose up -d
✅ 次のアクション¶
- 設置手順書の詳細作成 (チケット#68)
- テスト環境での実証
- 本格導入の実施 (チケット#69)
💡 付加価値¶
- 複数テーマ対応: 他のテーマも同様に管理可能
- 開発効率向上: ホスト側で直接編集→即反映
- CI/CD対応: 将来的なパイプライン構築に有利
📊 採用判定¶
結論: Docker Volume マウント方式を採用
- 長期運用に最適
- 開発・保守効率が高い
- リスクが管理可能
操作