2026/07/07_OpenVikingのDocker移行記録
🤖
🔐 概要
2026-07-07、NixOS上のOpenVikingをPython venvネイティブ→Dockerに段階移行した。
📁 移行前の状態
実行方法: Python venv + ラッパースクリプト (systemd管理)
ポート: 127.0.0.1:1933
VLM: Ollama qwen2.5:7b-16k (ローカルGPU)
Embedding: Ollama qwen3-embedding:0.6b (ローカルGPU)
🚀 移行ステップ(6段階)
Step 1: Native OV(OpenViking) のポートを 1933→1934 に変更
ov.conf / .env / opencode.jsonc の接続先を1934に変更
Native再起動 → 1934でヘルスOK、1933は解放
Step 2: Dockerイメージを起動(port 1933)
image: ghcr.io/volcengine/openviking:latest
network_mode: host, workspace: ~/.openviking/openviking_workspace_docker/
systemd unit (openviking-docker.service) で自動起動設定
Step 3: VLM を Ollama → OpenCode GO に切替
EmbeddingはOllama継続(GOにEmbedding APIがないため)
VLM: deepseek-v4-flash (OpenAI互換API, GOクラウド)
品質向上 (7B→671B MoE) + GPU負荷軽減
Step 4: データ移行(Native→Docker)
Native一時停止 → viking/default/ をDocker workspaceにコピー → Native再開
Docker側で reindex(ベクトル再生成)
177 abstract / 183 overview / 123 vector を移行完了
Step 5: Hermes / OpenCode の接続切替
.env: OPENVIKING_ENDPOINT → 1933
opencode.jsonc: MCP URL → 1933/mcp
Claude Code プラグイン: OPENVIKING_URL → 1933
再起動後、すべてDocker OV経由で正常動作
Step 6: 旧OVのクリーンアップ(進行中)
Nativeプロセス停止・systemd無効化済み
home-manager設定からコメントアウト済み
ファイル削除(venv 1,022MB / workspace 22MB)は経過観察後に実施予定
🔖 設計判断
ポート戦略: Native=1934, Docker=1933
公式エントリポイントが health check URL :1933 をハードコードしているため
Dockerに1933を使わせることで上書きhack不要に
VLM切替: GO deepseek-v4-flash
GPU負荷をVLMから解放しEmbedding専念
GOの$10/月定額内(VLM呼出は数十件/日で余裕)
Embedding継続: ローカルGPUでqwen3-embedding(639MB、安定)
systemd: Docker用は手書き管理(imperative)、Nativeはhome-manager管理だった
📊 現状の構成
code:ascii
NixOS Host
├── Hermes Agent ─────► 127.0.0.1:1933 (Docker OV)
├── OpenCode CLI ─────► 127.0.0.1:1933/mcp
├── Docker OV :1933 ──► VLM: GO deepseek-v4-flash / Embedding: Ollama
└── Native OV :1934 ── 停止済み(経過観察中)
🚧 残タスク
- 経過観察(推奨1〜2週間)→ 問題なければ削除実施
- ~/.local/opt/openviking-env/ 削除(1,022MB)
- ~/openviking_workspace/ 削除(22MB)
- ~/.local/bin/openviking-server, ~/.local/bin/ov 削除
📖 参照
~/docker/openviking/docker-compose.yml
~/.openviking/ov-docker.conf
~/wiki/openviking/output/docker-migration/