バグ #244
未完了
Docker環境構築とプロジェクト基盤セットアップ
Redmine Admin さんが3日前に追加.
3日前に更新.
説明
作業内容¶
プロジェクトの基盤となる環境を整備し、Docker Compose による開発・本番環境を構築します。
詳細タスク¶
-
Docker Compose 構成ファイルの作成
-
docker-compose.yml
に以下のサービスを定義:
-
task2-ai-api
: Node.js API サービス
-
task2-vector-db
: PostgreSQL + pgvector
-
task2-redis
: Redis キャッシュ
- 各サービスの基本構成:
- ポート設定
- ボリューム設定
- 環境変数設定
- 依存関係設定
-
環境変数ファイル (.env) の作成
- データベース接続情報
- API キー情報(Claude, CyatoGPT, DeepSeek)
- Redmine API 接続情報
- 各種設定パラメータ
-
PostgreSQL + pgvector 初期化スクリプトの作成
-
/db/init.sql
ファイルの作成
- pgvector 拡張のインストール設定
- 必要なテーブル・インデックスの作成
- 初期データの投入(必要に応じて)
-
API サービスのプロジェクト構造セットアップ
- 基本ディレクトリ構造の作成
- package.json の設定
- TypeScript 設定(tsconfig.json)
- ESLint, Prettier の設定
-
開発用スクリプトの作成
- 開発環境起動スクリプト
- データベース初期化スクリプト
- テスト実行スクリプト
技術的指示¶
- Docker Compose ファイルは version 3.8 を使用
- Node.js イメージは node:18-alpine を使用
- PostgreSQL イメージは ankane/pgvector:latest を使用
- Redis イメージは redis:alpine を使用
- 環境変数は .env ファイルで管理
- 開発/本番環境の切り替えは環境変数で制御
成果物¶
- docker-compose.yml
- .env ファイル(サンプル)
- /db/init.sql
- プロジェクト基本構造
- package.json
- 開発用スクリプト
参考リソース¶
チケット #244 作業完了報告¶
RAG システム基盤環境構築が完了しました!
✅ 完了した作業¶
1. Docker Compose 構成ファイル作成¶
- PostgreSQL + pgvector ベクトルデータベース
- Redis キャッシュサーバー
- Meilisearch 検索エンジン
- 拡張された API サービス
- ネットワーク設定(rag-network)
2. 環境変数ファイル作成¶
- AI API キー設定(Claude、ChatGPT、DeepSeek)
- データベース認証情報
- セキュリティ設定
3. PostgreSQL + pgvector 初期化完了¶
- ベクトル検索用テーブル作成:
-
documents
(ドキュメント管理)
-
document_chunks
(チャンク管理)
-
embeddings
(ベクトル埋め込み)
-
conversations
(会話履歴)
-
search_logs
(検索ログ)
- pgvector 拡張機能有効化
- HNSW インデックス作成
- 検索関数実装 (
vector_search
, get_rag_stats
)
4. API サービス拡張¶
- Express.js ベースの REST API
- セキュリティミドルウェア (helmet, CORS, rate limiting)
- エラーハンドリング
- ヘルスチェック機能
5. 開発用ツール作成¶
- 自動セットアップスクリプト (
dev-setup.sh
)
- データベース初期化スクリプト
- Docker 構成管理
🧪 動作確認完了¶
データベース統計情報¶
{
"total_documents": 2,
"total_chunks": 0,
"total_embeddings": 0,
"total_conversations": 0,
"documents_by_source": {"system": 2},
"last_indexed": null,
"database_size": "8005 kB"
}
API エンドポイント¶
📁 成果物¶
-
docker-compose-with-ports.yml
- 本番用構成
-
docker-compose-minimal.yml
- 開発・テスト用構成
-
.env
- 環境変数設定
-
db/init_fixed.sql
- データベース初期化スクリプト
-
app/api/
- 拡張 API サービス
-
package.json
- 依存関係定義
-
server.js
- メインサーバー
-
Dockerfile
- コンテナ設定
-
config/
- 設定ファイル群
-
dev-setup.sh
- 開発環境自動構築
🔜 次のステップ¶
基盤環境が完成したため、以下のチケットに進行可能です:
📊 技術仕様¶
-
Docker Compose: v3.8
-
PostgreSQL: 15 + pgvector latest
-
Redis: 7-alpine
-
Meilisearch: latest
-
Node.js: 18-alpine
-
API ポート: 3003 (外部アクセス用)
担当者: ito@minisform-ai
作業時間: 約2時間
完了日時: 2025-06-05 04:35 JST
基盤環境構築作業が完了しました。全てのサービスが正常に動作しており、次のチケット(#245-247)に進行可能な状態です。
🌐 サブドメイン構成設計完了¶
✅ 追加したサブドメイン(7個)¶
RAG コアサービス¶
-
rag.call2arm.com - RAG メイン API (rag-api:3000)
-
embedding.call2arm.com - 埋め込み生成 API (rag-embedding:3001)
-
ai.call2arm.com - AI プロキシ (rag-ai-proxy:3002)
-
docs.call2arm.com - ドキュメント処理 (rag-docs:3003)
管理・監視サービス¶
-
search.call2arm.com - Meilisearch UI (rag-search:7700)
-
pgadmin.call2arm.com - PostgreSQL 管理 (rag-pgadmin:80)
-
redis-insight.call2arm.com - Redis 管理 (rag-redis-insight:8001)
📋 既存サブドメイン(維持)¶
-
task.call2arm.com - Redmine UI 本番環境(変更なし)
-
task2.call2arm.com - Redmine UI 開発環境 + RAG 管理画面統合
🏗️ 作成済みファイル¶
-
docker-compose-full-subdomains.yml - 全サービス Docker 構成
-
nginx-rag-subdomains.conf - 全サブドメイン Nginx 設定
-
.env - 拡張環境変数(OpenAI API、管理画面パスワード等)
-
SUBDOMAINS.md - 構成ドキュメント
🔧 サービス構成¶
既存: task2-api, task2-ui
新規: rag-api, rag-embedding, rag-ai-proxy, rag-docs
管理: rag-pgadmin, rag-redis-insight
インフラ: rag-vector-db, rag-redis, rag-search
🔒 セキュリティ設計¶
-
SSL証明書: call2arm.com ワイルドカード適用
-
アクセス制限: 管理系サブドメインは IP 制限
-
レート制限: API 系サービスに適用
-
CORS: *.call2arm.com ドメイン間連携
🎯 次のアクション¶
- Nginx 設定をメインサーバーに統合
- 各サービスの Dockerfile 作成
- サービス個別実装開始
設計方針決定完了: ポート管理からサブドメイン + コンテナ名管理への移行成功
担当者: ito@minisform-ai
他の形式にエクスポート: Atom
PDF