1. 前提条件
| 項目 | 推奨内容 | 備考 |
|---|---|---|
| OS | Linux, macOS, Windows (WSL2) | Docker Desktop 4.22+ を推奨 |
| ハードウェア | RAM 8 GB 以上(16 GB 推奨) | ベクトル化用モジュールはメモリを多く消費します weaviate.io |
| ソフトウェア | Docker Engine 24 以上 / Docker Compose v2 以上 | docker compose(ハイフン無し)の CLI を前提に説明 |
2. プロジェクトディレクトリの作成
3. docker-compose.yml の最小構成例
docker-compose.yml の最小構成例
このファイルは公式ドキュメントの Sample Docker Compose file を簡略化したものです。weaviate.io
ポイント
Weaviate 本体だけを起動するシングルノード構成
匿名アクセスを許可 (
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true)データはホスト側
weaviate_dataボリュームに永続化
4. 起動と停止
Weaviate が 8080 にバインドされ、/v1/meta エンドポイントが 200 OK を返せば起動成功です。weaviate.io
停止は docker compose down、データを残したくない場合は docker compose down -v を使用します。
5. 動作確認
ブラウザまたは curl で確認:
レスポンスにバージョンや modules が表示されれば正常です。Python なら
6. 主要環境変数の意味(抜粋)
| 変数 | 目的 |
|---|---|
QUERY_DEFAULTS_LIMIT |
REST/GraphQL のデフォルト取得件数 |
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED |
認証無しアクセスの可否 |
PERSISTENCE_DATA_PATH |
コンテナ内データ保存パス |
ENABLE_API_BASED_MODULES |
OpenAI など外部 API モジュールを有効化 |
CLUSTER_HOSTNAME |
Raft クラスタ識別用ホスト名(シングルでも設定推奨) |
詳細は公式「環境変数リスト」を参照してください。weaviate.io
7. ベクトル化モジュールを追加する場合(text2vec-transformers の例)
text2vec-transformers の例)-
Weaviate 本体の
ENABLE_MODULESを設定 -
推論用コンテナ を追加(下記例では
t2v-transformers)
TRANSFORMERS_INFERENCE_API により Weaviate が別コンテナのエンベッディング API を呼び出します。weaviate.io
8. 永続化・バックアップ・アップグレード
| 操作 | 手順の要点 |
|---|---|
| データバックアップ | docker compose down → ボリューム weaviate_data を docker cp や docker run --rm -v weaviate_data:/data busybox tar czf /backup/weaviate-data.tgz /data で取得 |
| バージョンアップ | image タグを新バージョンに変更 → docker compose pull && docker compose up -d |
| マルチノード化 | weaviate-node-1, weaviate-node-2 … を services に追加し、CLUSTER_*, RAFT_* を設定(公式サンプルを参照)weaviate.io |
9. よくあるトラブルと対策
| 症状 | 原因と対処 |
|---|---|
| 8080 で応答がない | メモリ不足で OOM → docker stats を確認し RAM/Swap を増やす |
CLUSTER_HOSTNAME に関するエラー |
DHCP 環境でホスト名が変わる → CLUSTER_HOSTNAME を固定文字列にする |
| transformers モジュールが初期化しない | モデルイメージ名のタイプミス、CUDA 未対応 GPU など → イメージタグと ENABLE_CUDA を再確認 |
まとめ
Docker Compose を用いると、1 ファイル・1 コマンドでローカルに Weaviate を用意できます。必要に応じてモジュールを追記し、永続化ボリュームでデータを安全に保持してください。ローカル開発で構成に慣れた後は、同じ YAML を Kubernetes Helm へ移植することで本番環境へスムーズに移行できます。
ChatGPT4o 生成日:2025/06/20