playpark
ホーム会社概要サービスソリューションブログお知らせお問い合わせ
playpark

あらゆる仕事を楽しむ

会社概要サービスソリューションお問い合わせ特定商取引法に基づく表記

© 2019-2026 合同会社playpark All Rights Reserved.

  1. ホーム
  2. ブログ
  3. 技術Tips
  4. 【OpenClaw】Docker構築・モデル切替・Skills開発 実践ガイド — 自分だけのAIアシスタントを作る
ブログ一覧に戻る
技術Tips

【OpenClaw】Docker構築・モデル切替・Skills開発 実践ガイド — 自分だけのAIアシスタントを作る

OpenClawのDocker本番構築、Gemini/ローカルLLMモデル切替設定、SKILL.md によるカスタムSkills開発まで。Slack導入の次のステップを実践解説します。

2026年3月9日22分で読める
OpenClawDockerAILLMSkills開発セルフホスティング
【OpenClaw】Docker構築・モデル切替・Skills開発 実践ガイド — 自分だけのAIアシスタントを作る

OpenClaw シリーズ

(3記事)
  1. 1.【OpenClaw × Slack】AIアシスタント構築実践 - Local LLMからGeminiハイブリッド構成まで
  2. 2.【OpenClaw】Docker構築・モデル切替・Skills開発 実践ガイド — 自分だけのAIアシスタントを作る
  3. 3.【OpenClaw Docker セキュリティ】CVE対策で学ぶコンテナハードニング実践 — cap_drop ALL から始める安全運用

前回の記事ではOpenClawをSlackに導入し、Local LLMの限界からGeminiハイブリッド構成に至る試行錯誤を書きました。

あれから2ヶ月。GitHub 247,000+スターまで成長したOpenClawを本番運用する中で見えてきた「次のステップ」があります。

  • Docker環境をセキュリティまで考慮して構築する
  • モデルプロバイダーをフォールバック付きで柔軟に切り替える
  • 自前のSkillsを開発して、自分だけのAIアシスタントに仕上げる

「Slack連携はできた。次は何する?」という方のための実践ガイドです。

この記事で学べること

  • Docker Composeを使ったOpenClawの本番環境構築(セキュリティ設定含む)
  • モデルプロバイダーの設定とフォールバックチェーンの設計
  • SKILL.md の構造とカスタムSkills開発の手順
  • セキュリティ上の注意点

前提知識

  • Dockerの基本操作(docker compose up がわかる程度)
  • OpenClawの基本を把握している
  • LLM APIの概念(APIキー、モデル指定)を理解している

あわせて読みたい

【OpenClaw Docker セキュリティ】CVE対策で学ぶコンテナハードニング実践 — cap_drop ALL から始める安全運用
技術Tips30分

【OpenClaw Docker セキュリティ】CVE対策で学ぶコンテナハードニング実践 — cap_drop ALL から始める安全運用

OpenClawをDocker化しCVE-2026対策を実施。cap_drop ALL・read_only・no-new-privilegesのハードニング設定と、AI開発ツールのコンテナセキュリティ設計を実コード付きで解説します。

読む

Docker環境構築

なぜDockerなのか

前回の記事ではgit clone → docker compose upで済ませました。ローカル検証にはそれで十分ですが、本番運用するなら以下が必要です:

  • 非rootユーザーでの実行
  • ケーパビリティの制限(不要な権限を落とす)
  • ヘルスチェックの設定
  • 永続化ボリュームの適切なマウント

セットアップ手順

プリビルドイメージ ghcr.io/openclaw/openclaw を使用するため、ローカルでのビルドは不要です。

# 1. プロジェクトディレクトリを作成
mkdir openclaw-pp && cd openclaw-pp

# 2. 設定ファイルを配置
mkdir -p config cron data workspace
cp .env.example .env
# .env を編集してAPIキー・トークンを設定

# 3. openclaw.json を config/ に配置
# config/openclaw.json にモデル設定・チャンネル設定を記述

# 4. 起動
docker compose up -d

既存のホスト環境からの移行には scripts/migrate.sh を使用できます。

セキュリティ設定

OpenClawの公式Dockerイメージには以下のセキュリティ設定が組み込まれています:

設定内容
実行ユーザー1000:1000(非root)
ケーパビリティcap_drop: ALL(全ケーパビリティを削除)
ファイルシステムread_only: true(ルートFS読み取り専用)
権限昇格no-new-privileges:true
ヘルスチェック/healthz(ポート18789、30秒間隔)
ネットワーク127.0.0.1:18789 にバインド(localhost限定)

ボリュームマウント

read_only: true を設定した上で、書き込みが必要な領域だけを個別にマウントする設計です。

volumes:
  # 設定ファイル(読み取り専用)
  - ./config/openclaw.json:/home/node/.openclaw/openclaw.json:ro
  - ./cron:/home/node/.openclaw/cron:ro
  # データディレクトリ(読み書き)
  - ./data/credentials:/home/node/.openclaw/credentials:rw
  - ./data/identity:/home/node/.openclaw/identity:rw
  - ./data/memory:/home/node/.openclaw/memory:rw
  - ./data/agents:/home/node/.openclaw/agents:rw
  - ./data/media:/home/node/.openclaw/media:rw
  - ./data/logs:/home/node/.openclaw/logs:rw
  - ./data/browser:/home/node/.openclaw/browser:rw
  - ./data/canvas:/home/node/.openclaw/canvas:rw
  - ./data/devices:/home/node/.openclaw/devices:rw
  - ./workspace:/home/node/.openclaw/workspace:rw
  # Skills(named volume、読み取り専用)
  - skills:/home/node/.openclaw/skills:ro

Skillsはnamed volumeで :ro マウントし、ホスト側のディレクトリを .env の SKILLS_PATH で指定します。

主要な環境変数

.env.example に定義されている環境変数:

変数用途
SLACK_BOT_TOKENSlack Bot User OAuth Token
SLACK_APP_TOKENSlack App-Level Token(Socket Mode用)
OPENCLAW_GATEWAY_TOKENGateway認証トークン
GEMINI_API_KEYGoogle Gemini APIキー
MINIMAX_API_KEYMiniMax APIキー
SKILLS_PATHホスト側のSkillsディレクトリパス

あわせて読みたい

【OpenClaw × Slack】AIアシスタント構築実践 - Local LLMからGeminiハイブリッド構成まで
実験レポート19分

【OpenClaw × Slack】AIアシスタント構築実践 - Local LLMからGeminiハイブリッド構成まで

GitHub 100k+スターのOpenClawをSlackに導入。Local LLMで完全無料運用を目指すも断念し、Gemini 3ハイブリッド構成で実用化するまでの試行錯誤。

読む

モデルプロバイダー設定

OpenClawのモデル設定は前回の記事で基本を触れましたが、本番運用で重要なフォールバックチェーンとキーローテーションを掘り下げます。

対応プロバイダー一覧

OpenClawは14+のプロバイダーをビルトインでサポートしています:

プロバイダー環境変数モデル例
Google GeminiGEMINI_API_KEYgoogle/gemini-3-flash-preview
AnthropicANTHROPIC_API_KEYanthropic/claude-opus-4-6
OpenAIOPENAI_API_KEYopenai/gpt-5.3
MiniMaxMINIMAX_API_KEYminimax/MiniMax-M2.1
Ollama(ローカル)自動検出ollama/llama3.3
OpenRouterOPENROUTER_API_KEYopenrouter/任意のモデル
GroqGROQ_API_KEYgroq/llama-3.3-70b

モデルの指定形式は プロバイダー/モデル名 です。

フォールバックチェーンの設計

本番運用で重要なのは「APIが落ちたときに止まらない」こと。config/openclaw.json の agents.defaults.model で設定します:

{
  agents: {
    defaults: {
      model: {
        // メインモデル(高速・低コスト)
        primary: 'google/gemini-3-flash-preview',
        // フォールバック(順番に試行)
        fallbacks: [
          'google/gemini-3-pro-preview', // 高品質
          'anthropic/claude-sonnet-4-6', // 別プロバイダー
          'ollama/llama3.3', // 最終手段:ローカル
        ],
      },
    },
  },
}

設計のポイント: フォールバック先は異なるプロバイダーを含めること。Gemini APIが全滅したときにGeminiの別モデルに逃がしても意味がありません。

APIキーローテーション

Gemini APIの無料枠を複数アカウントで回す場合や、レートリミット対策に:

# .env で単一キーを設定
GEMINI_API_KEY=your-gemini-api-key

レートリミット対策としてフォールバックチェーンに別プロバイダーのモデルを含めておくことで、特定プロバイダーの制限時にも動作を継続できます。

CLIでのモデル切替

設定ファイルを編集せずにモデルを切り替える場合:

# Docker環境でのCLI実行(oc ラッパースクリプト使用)
./scripts/oc models list

# モデル切替
./scripts/oc models set google/gemini-3-flash-preview

# または docker compose 経由で直接実行
docker compose --profile cli run --rm openclaw-cli models list

Skills開発入門

OpenClawの真価はSkillsです。前回の記事でも「魅力はSkillsで機能を拡張できること」と書きました。ここからは、自分でSkillsを作る方法を解説します。

Skillsの構造

Skillは1フォルダ = 1スキル。中核はYAMLフロントマター付きのSKILL.mdファイルです。

my-custom-skill/
└── SKILL.md

SKILL.md の書き方

---
name: daily-report
description: 日次レポートをMarkdownで生成する
metadata:
  {
    'openclaw':
      { 'requires': { 'bins': ['curl'], 'env': ['SLACK_WEBHOOK_URL'] } },
  }
---

## 手順

1. ユーザーに今日の作業内容を質問する
2. 回答をもとに以下のテンプレートでレポートを生成する:
   - 完了タスク
   - 進行中タスク
   - 明日の予定
   - ブロッカー
3. 生成したレポートを `~/reports/YYYY-MM-DD.md` に保存する
4. SLACK_WEBHOOK_URL が設定されていれば、Slackにも投稿する

フロントマターのフィールド

フィールド必須説明
name○スキルの識別名(ケバブケース推奨)
description○1行の説明(スラッシュコマンド一覧に表示)
homepage×macOS UIでのリンク先URL
user-invocable×true(デフォルト)でスラッシュコマンド化
disable-model-invocation×true でモデルからの自動呼び出しを無効化
command-dispatch: tool×モデルをバイパスして直接ツール実行
metadata×動作要件(必要なバイナリ、環境変数、OS)

Skillsの配置

Docker環境では、Skillsはnamed volumeとしてコンテナ内の /home/node/.openclaw/skills/ に読み取り専用でマウントされます。

# docker-compose.yml(抜粋)
volumes:
  skills:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: ${SKILLS_PATH:-~/skills}

ホスト側の SKILLS_PATH ディレクトリにSkillsフォルダを配置すると、コンテナから自動的に参照されます。

openclaw.json でのSkills設定

{
  skills: {
    entries: {
      'daily-report': {
        enabled: true,
        env: {
          SLACK_WEBHOOK_URL: 'https://hooks.slack.com/services/...',
        },
        config: {
          reportDir: '~/reports',
        },
      },
    },
    // バンドルスキルの許可リスト(セキュリティ対策)
    allowBundled: ['web-search', 'memory', 'computer-use'],
  },
}

コミュニティSkills

OpenClawのSkillsエコシステムでは、コミュニティで共有されたSkillsを利用できます。Skillsのインストールは、ホスト側のSkillsディレクトリにフォルダを配置するだけです。

# Skillsディレクトリにスキルを配置
ls ${SKILLS_PATH}/
# daily-report/  dev-flow/  git-commit/  ...

openclaw.json の skills.install.nodeManager でパッケージマネージャーを指定できます(デフォルト: pnpm)。

セキュリティ上の注意

OpenClawのSkillsエコシステムは強力ですが、セキュリティリスクも伴います。

サードパーティSkillsのリスク

Ciscoのセキュリティチームの調査で、サードパーティSkillsによるデータ流出とプロンプトインジェクションのリスクが指摘されています。

対策:

  • サードパーティSkillsは必ずソースコードを確認してからインストール
  • allowBundled で使用するバンドルスキルを明示的に制限
  • metadata.openclaw.requires で必要な権限を最小限に宣言
  • Skillsは :ro(読み取り専用)でマウントし、コンテナ内からの改ざんを防止
  • セキュリティハードニングでcap_drop: ALL・read_only: trueを適用

APIキーの管理

# NG: openclaw.json にAPIキーを直書き
# OK: 環境変数で管理
export GEMINI_API_KEY=your-key
export ANTHROPIC_API_KEY=your-key

.envファイルを使う場合は、必ず.gitignoreに追加してください。

まとめ

OpenClawをSlack連携の先に進めるための3つのステップを解説しました:

  1. Docker本番構築: プリビルドイメージ、ボリューム設計、セキュリティ設定
  2. モデルプロバイダー: フォールバックチェーンで安定運用
  3. Skills開発: SKILL.md の書き方とカスタムSkillsの作成

OpenClawの本当の価値は、自分の業務に特化したSkillsを積み上げて、自分だけのAIアシスタントに育てるところにあります。4つのAIコーディングツールでSkillsを統一管理する方法と組み合わせれば、OpenClawのSkillsを他のツールからも活用できます。

あわせて読みたい

  • SlackにAIアシスタントを導入した話 — OpenClawの基本とGeminiハイブリッド構成
  • 4つのAIコーディングツールのSkillsを統一管理する方法 — OpenClawを含むマルチツール環境のSkills共有
  • AIコーディングツール完全比較 — Claude Code・Codex・Antigravityの使い分け
OpenClaw シリーズ — 2 / 3 記事
前の記事
【OpenClaw × Slack】AIアシスタント構築実践 - Local LLMからGeminiハイブリッド構成まで
次の記事
【OpenClaw Docker セキュリティ】CVE対策で学ぶコンテナハードニング実践 — cap_drop ALL から始める安全運用

この技術を活用した事例

記事の技術が実際のプロジェクトでどう活かされているかをご紹介します

【PDF RAG】社内文書AI検索で検索時間90%削減 - RAG導入の実践事例

PDFをアップロードするだけで自然言語で質問できるAI検索システム。RAGで文書検索時間を90%削減し、社内ナレッジの活用率を3.5倍に向上させた事例をご紹介します。

事例を読む

【自社導入事例】ブログ運用を完全自動化 - GitHubリポジトリから記事・サムネイル・SNS投稿まで

「ブログ書くのしんどい」「SNS投稿めんどくさい」を解決。GitHubリポジトリから記事生成、サムネイル作成、SNS投稿文まで自動化した、playpark自身の導入事例を紹介します。

事例を読む

【美容室・サロン向け】指名予約と連動するAIシフト作成アプリ|シフト管理の時間を80%削減

指名予約のお客様とスタッフのシフトが自動で連動。「担当者が休みだった」をゼロに。美容院・ネイルサロン・整体など予約制サロン(スタッフ5〜50名)に特化したAIシフト作成アプリ「Shift Bud」で、シフト管理の作成時間を80%削減。

事例を読む
About playpark

「あらゆる仕事を楽しむ」をミッションに、業務自動化・AI活用を手がける合同会社です。このブログの運用自体も、自社開発のClaude Code Skillsで完全自動化しています。

会社概要サービス
一緒に実験しませんか?
ブログ一覧に戻る

関連記事

すべての記事
【OpenClaw Docker セキュリティ】CVE対策で学ぶコンテナハードニング実践 — cap_drop ALL から始める安全運用
技術Tips
2026年3月12日30分で読める
【OpenClaw Docker セキュリティ】CVE対策で学ぶコンテナハードニング実践 — cap_drop ALL から始める安全運用

OpenClawをDocker化しCVE-2026対策を実施。cap_drop ALL・read_only・no-new-privilegesのハードニング設定と、AI開発ツールのコンテナセキュリティ設計を実コード付きで解説します。

OpenClawDockerセキュリティ設定+3
【OpenClaw × Slack】AIアシスタント構築実践 - Local LLMからGeminiハイブリッド構成まで
実験レポート
2026年2月6日19分で読める
【OpenClaw × Slack】AIアシスタント構築実践 - Local LLMからGeminiハイブリッド構成まで

GitHub 100k+スターのOpenClawをSlackに導入。Local LLMで完全無料運用を目指すも断念し、Gemini 3ハイブリッド構成で実用化するまでの試行錯誤。

AISlackLLM+2
【実測比較】Claude Code vs Codex — 実プロジェクトで使い比べてわかった選び方
技術Tips
2026年3月16日20分で読める
【実測比較】Claude Code vs Codex — 実プロジェクトで使い比べてわかった選び方

Claude CodeとCodexを実プロジェクトで使い比べて比較。開発速度・品質・コスト・拡張性の4軸で実測データに基づく選び方を解説します。

Claude CodeCodexAIコーディングツール+3

この技術を活用したサービス

記事の技術を使って、業務課題を解決しませんか?playparkのソリューションをご覧ください。

ソリューション一覧へ