openclaw-docker
bon-soleil Holdings — Container Office
Mephi-approved configuration (95/100)
OpenClawインスタンスをDockerコンテナ化し、複数AIの安全な共存環境を提供します。
特徴
- ✅ 環境分離: 各AIが独立したコンテナで動作
- ✅ セキュリティ: 非rootユーザー実行、専用ネットワーク
- ✅ リソース管理: CPU/メモリ制限、ログローテーション
- ✅ ポータビリティ: イメージ + ボリュームでどこでも実行可能
Phase 1: アリス(PoC)
前提条件
- Docker Desktop (macOS) or Docker Engine (Linux)
- OpenClaw API key (Anthropic)
- Telegram Bot Token
セットアップ
1. リポジトリクローン
git clone [email protected]:goodsun/openclaw-docker.git
cd openclaw-docker
2. インスタンスセットアップ(推奨)
セキュアなセットアップスクリプトを使用:
./scripts/setup-instance.sh alice
これにより以下が自動実行されます:
- ディレクトリ作成(
instances/alice/{workspace,sessions,config}) .envファイル作成(.env.exampleからコピー)- パーミッション設定(
chmod 600)
3. 環境変数設定
.envファイルを編集:
vim instances/alice/.env
必須項目を設定:
UID/GID(重要):
macOSとLinuxでUID/GIDが異なるため、現在の環境を確認して設定:
macOS:
id -u # 通常 501
id -g # 通常 20(staff)
# instances/alice/.env
CONTAINER_UID=501
CONTAINER_GID=20
Linux:
id -u # 通常 1000
id -g # 通常 1000
# instances/alice/.env
CONTAINER_UID=1000
CONTAINER_GID=1000
APIキー等:
ANTHROPIC_API_KEY: https://console.anthropic.com/settings/keys で取得(必須)TELEGRAM_BOT_TOKEN: @BotFather で/newbotして取得(オプション — 設定しない場合はTUI/WebChatのみ)
⚠️ 注意: docker-compose.ymlを直接編集しないでください。.envで設定します。
エージェント設定(オプション):
.envに以下を追加することで、エージェントの動作を制御できます:
# 使用モデル(デフォルトはopus。コスト管理のためsonnet推奨)
OPENCLAW_MODEL=anthropic/claude-sonnet-4-6
# 思考モード(adaptiveはコスト予測困難。明示的にoffを推奨)
OPENCLAW_THINKING=off
# ゲートウェイのバインドアドレス
OPENCLAW_BIND=lan
⚠️ 重要: これらの設定は起動毎に
.envの値でopenclaw.jsonを上書きします。 コンテナ内でopenclaw config setを手動実行しても、再起動時に.envの値に戻ります。 設定の永続化は必ず.envで行ってください。
4. workspaceセットアップ
# SOUL.md, USER.md等をinstances/alice/workspace/に配置
# または、バックアップzipから復元
cd instances/alice
unzip /path/to/alice-backup.zip
5. イメージビルド
docker-compose build
6. 起動
docker-compose up -d alice
7. ログ確認
docker-compose logs -f alice
8. ヘルスチェック
docker ps
# STATUS列に "(healthy)" が表示されればOK
メンテナンス
セッションクリーンアップ(Mephi requirement)
30日以前のセッションファイルを削除:
./scripts/cleanup-sessions.sh
cron設定例(週次実行):
# crontab -e
0 3 * * 0 cd /path/to/openclaw-docker && ./scripts/cleanup-sessions.sh
ログ確認
# リアルタイム
docker-compose logs -f alice
# 過去ログ
docker logs alice-openclaw
コンテナ再起動
docker-compose restart alice
イメージ更新
docker-compose down
docker-compose build --no-cache
docker-compose up -d
Mephi承認条件(Phase 1)
- ✅ UID/GID設計(
user: "1000:1000") - ✅ 専用ネットワーク(
alice-net) - ✅ 機密情報管理(
.env+.gitignore) - ✅ リソース制限(CPU 1コア、メモリ2GB)
- ✅ ヘルスチェック(
healthcheck) - ✅ ログローテーション(
logging) - ✅ セッション削除スクリプト(
cleanup-sessions.sh) - ⏳ Time Machineバックアップ検証(Phase 1中)
Phase 2: メフィ追加
Phase 1が1週間安定稼働したら、docker-compose.ymlのメフィセクションをアンコメント:
docker-compose up -d mephi
トラブルシューティング
コンテナが起動しない
docker-compose logs alice
よくある原因:
.envファイルが存在しない →./scripts/setup-instance.sh aliceで作成- UID/GID不一致 →
instances/alice/.envのCONTAINER_UID/CONTAINER_GIDを確認 - ポート競合 →
18790が使われていないか確認
パーミッションエラー
# ホスト側のディレクトリ所有者を確認
ls -la instances/alice/
# 必要に応じて所有者変更(macOS)
sudo chown -R 501:20 instances/alice/
# 必要に応じて所有者変更(Linux)
sudo chown -R 1000:1000 instances/alice/
ヘルスチェック失敗
Gatewayが起動していない可能性。ログを確認:
docker-compose logs alice | grep -i error
ディレクトリ構造
openclaw-docker/
├── Dockerfile
├── docker-compose.yml
├── .env.example
├── .gitignore
├── README.md
├── scripts/
│ └── cleanup-sessions.sh
└── instances/
├── alice/
│ ├── .env # git管理外
│ ├── workspace/
│ ├── sessions/
│ └── config/
└── mephi/ # Phase 2
├── .env
├── workspace/
├── sessions/
└── config/
コンテナ間通信(跨ぎ sessions_send)
仕組み
sessions_send ツールは同一Gateway内のセッションにしか送れない。
別コンテナのAIに送るには /tools/invoke エンドポイントをHTTP直叩きする。
ホストOS(テディ)→ コンテナへの送信例
# みぃちゃんのセッション一覧を取得
curl -X POST http://127.0.0.1:18790/tools/invoke \
-H "Authorization: Bearer mie-dev-token-2026" \
-H "Content-Type: application/json" \
-d '{"tool":"sessions_list","args":{}}'
# みぃちゃんへメッセージ送信
curl -X POST http://127.0.0.1:18790/tools/invoke \
-H "Authorization: Bearer mie-dev-token-2026" \
-H "Content-Type: application/json" \
-d '{"tool":"sessions_send","args":{"sessionKey":"agent:main:main","message":"テディからみぃちゃんへ!"}}'
ポイント
- ホストからはポートマッピングで直接届く(
shared-agentsネットワーク不要) - コンテナ内から別コンテナへ送る場合は
shared-agentsネットワークが必要 - 受信側の
openclaw.jsonに以下が必須:
"gateway": {
"tools": { "allow": ["sessions_send"] },
"auth": { "mode": "token", "token": "your-token" }
}
実証済み(2026-03-07)
テディ(ホストOS)→ みぃちゃん(コンテナ)跨ぎ通信成功 🎉
ライセンス
Private repository — bon-soleil Holdings internal use only
Mephi-approved 98/100 ✅ | Mac Mini M4 稼働中 🚀
No comments yet.