操作
バグ #361
未完了claude-searchサービス修正計画
ステータス:
進行中
優先度:
急いで
担当者:
-
開始日:
2025-06-07
期日:
進捗率:
0%
予定工数:
説明
概要¶
claude-searchサービスの問題修正計画
親チケット¶
#360 claude-searchサービスの現状調査と改善
修正計画詳細¶
フェーズ1: 緊急修正(優先度: 高)¶
1.1 APIのSQLクエリ修正¶
-
問題:
/app/main.py
33行目のSQLクエリが不完全 -
現状:
WHERE title LIKE LIMIT 10
($1プレースホルダー欠落) -
修正:
WHERE title LIKE $1 LIMIT 10
- 作業時間: 15分
- 影響: 検索機能の復旧
1.2 データベース接続文字列の修正¶
-
問題: ハードコードされたコンテナ名
a863ecbecef0_claude-search-db
-
修正: 環境変数またはサービス名
claude-search-db
を使用 - 作業時間: 20分
フェーズ2: インフラ整理(優先度: 中)¶
2.1 重複コンテナの整理¶
- 現状: claude-search-ui と claude-search-web の2つのNginxコンテナ
-
作業:
- 各コンテナの役割確認
- 不要なコンテナの停止・削除
- docker-compose.yml の整理
- 作業時間: 30分
2.2 Nginx設定の修正¶
-
ファイル:
/etc/nginx/sites-enabled/claude.call2arm.com.conf
-
修正内容:
# 現状: proxy_pass http://192.168.208.3:3005; # 修正: proxy_pass http://claude-search-api:8000;
- 作業時間: 20分
フェーズ3: 品質改善(優先度: 低)¶
3.1 ヘルスチェックの改善¶
- APIのヘルスチェックエンドポイント強化
- タイムアウト設定の調整
- 作業時間: 30分
3.2 ログ設定の改善¶
- エラーログの詳細化
- ログローテーション設定
- 作業時間: 20分
フェーズ4: テストと検証¶
4.1 動作確認¶
- 検索機能のテスト
- ヘルスチェックの確認
- Nginx経由でのアクセステスト
- 作業時間: 30分
作業手順¶
1. バックアップ¶
cd /root/claude-search-system
cp api/main.py api/main.py.backup
docker-compose -f docker-compose-api.yml ps > containers_backup.txt
2. API修正¶
# SQLクエリ修正
docker exec claude-search-api sed -i 's/WHERE title LIKE LIMIT/WHERE title LIKE $1 LIMIT/' /app/main.py
# 再起動
docker-compose -f docker-compose-api.yml restart claude-search-api
3. コンテナ整理¶
# 状態確認
docker ps -a | grep claude-search
# 不要なコンテナ停止
docker stop [不要なコンテナID]
docker rm [不要なコンテナID]
4. Nginx設定更新¶
# 設定編集
sudo nano /etc/nginx/sites-enabled/claude.call2arm.com.conf
# 構文チェック
sudo nginx -t
# リロード
sudo systemctl reload nginx
所要時間¶
- 合計作業時間: 約3時間
- 緊急修正のみ: 約35分
リスクと対策¶
- リスク: 本番環境での直接修正
- 対策: 各ステップでバックアップとロールバック手順を準備
成功基準¶
- APIのヘルスチェックがhealthyになる
- 検索機能が正常に動作する
- claude.call2arm.comでアクセス可能
- エラーログが出力されない
Redmine Admin さんが約9時間前に更新
フェーズ1完了報告¶
実施内容¶
-
バックアップ作成 ✅
- api_backup_20250607 作成
- containers_backup_20250607.txt 作成
-
SQLクエリ修正 ✅
- main.py 33行目:
WHERE title LIKE $1 LIMIT 10
に修正 - 検索機能が正常動作することを確認
- main.py 33行目:
-
DB接続文字列修正 ✅
- ハードコードされたコンテナIDを
claude-search-db
に変更 - 接続成功を確認
- ハードコードされたコンテナIDを
-
APIヘルスチェック ✅
-
/api/v2/health
が{"status": "healthy", "database": "connected"}
を返却 - 検索エンドポイントが正常応答(500エラー解消)
-
フェーズ2部分実施¶
-
重複コンテナ削除 ✅
- claude-search-ui を停止・削除(claude-search-webを使用)
動作確認結果¶
# APIルート
{"status":"ok","version":"2.0.0"}
# 検索テスト
{"results": [], "total": 0} # 正常応答
# ヘルスチェック
{"status": "healthy", "database": "connected"}
残作業¶
- Nginx設定のコンテナ名ベース化
- 完全な動作テスト
緊急修正は完了しました。
操作