Docker (اختياري)
Docker اختياري. استخدمه فقط إذا كنت تريد Gateway داخل حاوية أو للتحقق من تدفق Docker.هل Docker مناسب لي؟
- نعم: تريد بيئة Gateway معزولة وقابلة للاستبدال أو تريد تشغيل OpenClaw على مضيف من دون تثبيتات محلية.
- لا: أنت تشغّل التطبيق على جهازك الخاص وتريد فقط أسرع حلقة تطوير. استخدم مسار التثبيت العادي بدلًا من ذلك.
- ملاحظة حول sandboxing: يستخدم عزل الوكيل Docker أيضًا، لكنه لا يتطلب تشغيل Gateway بالكامل داخل Docker. راجع Sandboxing.
المتطلبات الأساسية
- Docker Desktop (أو Docker Engine) + Docker Compose v2
- ما لا يقل عن 2 GB RAM لبناء الصورة (
pnpm installقد يُنهى بسبب OOM على المضيفات ذات 1 GB مع الخروج 137) - مساحة قرص كافية للصور والسجلات
- إذا كنت تشغّل التطبيق على VPS/مضيف عام، فراجع
تقوية الأمان للتعرض الشبكي،
وخاصة سياسة جدار الحماية
DOCKER-USERفي Docker.
Gateway داخل حاوية
بناء الصورة
من جذر المستودع، شغّل نص الإعداد:هذا يبني صورة gateway محليًا. لاستخدام صورة مبنية مسبقًا بدلًا من ذلك:تُنشر الصور المبنية مسبقًا في
GitHub Container Registry.
الوسوم الشائعة:
main, latest, <version> (مثل 2026.2.26).إكمال التهيئة الأولية
يشغّل نص الإعداد التهيئة الأولية تلقائيًا. وسيقوم بما يلي:
- طلب مفاتيح API الخاصة بالمزوّد
- إنشاء رمز gateway وكتابته إلى
.env - بدء gateway عبر Docker Compose
openclaw-gateway مباشرةً. أمّا openclaw-cli فهي للأوامر التي تشغّلها بعد
أن تصبح حاوية gateway موجودة بالفعل.فتح Control UI
افتح
http://127.0.0.1:18789/ في متصفحك والصق
السر المشترك المكوَّن في Settings. يكتب نص الإعداد رمزًا إلى .env
افتراضيًا؛ وإذا بدّلت تكوين الحاوية إلى مصادقة كلمة المرور، فاستخدم
كلمة المرور تلك بدلًا من ذلك.هل تحتاج إلى عنوان URL مرة أخرى؟التدفق اليدوي
إذا كنت تفضّل تشغيل كل خطوة بنفسك بدلًا من استخدام نص الإعداد:شغّل
docker compose من جذر المستودع. إذا فعّلت OPENCLAW_EXTRA_MOUNTS
أو OPENCLAW_HOME_VOLUME، فسيكتب نص الإعداد الملف docker-compose.extra.yml؛
ضمّنه مع -f docker-compose.yml -f docker-compose.extra.yml.نظرًا لأن
openclaw-cli تشارك مساحة أسماء الشبكة الخاصة بـ openclaw-gateway، فهي
أداة لما بعد البدء. قبل docker compose up -d openclaw-gateway، شغّل التهيئة الأولية
وعمليات كتابة التكوين وقت الإعداد من خلال openclaw-gateway باستخدام
--no-deps --entrypoint node.متغيرات البيئة
يقبل نص الإعداد متغيرات البيئة الاختيارية التالية:| المتغير | الغرض |
|---|---|
OPENCLAW_IMAGE | استخدام صورة بعيدة بدلًا من البناء محليًا |
OPENCLAW_DOCKER_APT_PACKAGES | تثبيت حزم apt إضافية أثناء البناء (أسماء مفصولة بمسافات) |
OPENCLAW_EXTENSIONS | تثبيت تبعيات extension مسبقًا وقت البناء (أسماء مفصولة بمسافات) |
OPENCLAW_EXTRA_MOUNTS | bind mounts إضافية من المضيف (مفصولة بفواصل source:target[:opts]) |
OPENCLAW_HOME_VOLUME | حفظ /home/node في Docker volume مسماة |
OPENCLAW_SANDBOX | الاشتراك في bootstrap الخاص بـ sandbox (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | تجاوز مسار Docker socket |
فحوصات الصحة
نقاط نهاية probe الخاصة بالحاوية (لا تتطلب مصادقة):HEALTHCHECK مضمّنًا يجري ping إلى /healthz.
إذا استمرت الفحوصات في الفشل، يضع Docker علامة unhealthy على الحاوية،
ويمكن لأنظمة orchestration إعادة تشغيلها أو استبدالها.
لقطة صحة عميقة مع مصادقة:
LAN مقابل loopback
يضبطscripts/docker/setup.sh القيمة الافتراضية OPENCLAW_GATEWAY_BIND=lan بحيث يعمل وصول المضيف إلى
http://127.0.0.1:18789 مع نشر منافذ Docker.
lan(الافتراضي): يمكن لمتصفح المضيف وCLI على المضيف الوصول إلى منفذ gateway المنشور.loopback: لا يمكن إلا للعمليات داخل مساحة أسماء شبكة الحاوية الوصول إلى gateway مباشرة.
استخدم قيم وضع الربط في
gateway.bind (lan / loopback / custom /
tailnet / auto)، وليس الأسماء المستعارة للمضيف مثل 0.0.0.0 أو 127.0.0.1.التخزين والاستمرارية
يقوم Docker Compose بعمل bind-mount لـOPENCLAW_CONFIG_DIR إلى /home/node/.openclaw و
OPENCLAW_WORKSPACE_DIR إلى /home/node/.openclaw/workspace، لذا فإن هذه المسارات
تبقى بعد استبدال الحاوية.
ودليل التكوين المركّب هذا هو المكان الذي يحتفظ فيه OpenClaw بما يلي:
openclaw.jsonلتكوين السلوكagents/<agentId>/agent/auth-profiles.jsonللمصادقة المخزنة للمزوّدين عبر OAuth/API-key.envللأسرار وقت التشغيل المدعومة بـ env مثلOPENCLAW_GATEWAY_TOKEN
media/ وملفات JSONL الخاصة بالجلسات وcron/runs/*.jsonl،
وسجلات الملفات الدوّارة تحت /tmp/openclaw/.
مساعدات shell (اختياري)
لتسهيل الإدارة اليومية لـ Docker، ثبّتClawDock:
scripts/shell-helpers/clawdock-helpers.sh، فأعد تشغيل أمر التثبيت أعلاه حتى يتتبع ملف المساعد المحلي الموقع الجديد.
بعد ذلك استخدم clawdock-start وclawdock-stop وclawdock-dashboard وغيرها. شغّل
clawdock-help لجميع الأوامر.
راجع ClawDock للحصول على دليل المساعد الكامل.
تمكين agent sandbox لبوابة Docker
تمكين agent sandbox لبوابة Docker
docker.sock فقط بعد نجاح متطلبات sandbox الأساسية. وإذا
تعذّر إكمال إعداد sandbox، يعيد النص ضبط agents.defaults.sandbox.mode
إلى off.الأتمتة / CI (غير تفاعلي)
الأتمتة / CI (غير تفاعلي)
عطّل تخصيص Compose pseudo-TTY باستخدام
-T:ملاحظة أمان حول الشبكة المشتركة
ملاحظة أمان حول الشبكة المشتركة
تستخدم
openclaw-cli القيمة network_mode: "service:openclaw-gateway" حتى تتمكن
أوامر CLI من الوصول إلى gateway عبر 127.0.0.1. تعامل مع هذا
كحد ثقة مشترك. يسقط تكوين compose الصلاحيتين NET_RAW/NET_ADMIN ويفعل
no-new-privileges على openclaw-cli.الأذونات وEACCES
الأذونات وEACCES
تعمل الصورة كمستخدم
node (uid 1000). إذا رأيت أخطاء أذونات على
/home/node/.openclaw، فتأكد من أن bind mounts على المضيف مملوكة لـ uid 1000:إعادة بناء أسرع
إعادة بناء أسرع
رتّب Dockerfile بحيث تكون طبقات التبعيات مخزنة مؤقتًا. هذا يتجنب إعادة تشغيل
pnpm install ما لم تتغير lockfiles:خيارات حاوية للمستخدمين المتقدمين
خيارات حاوية للمستخدمين المتقدمين
الصورة الافتراضية تركّز على الأمان وتعمل كمستخدم
node غير root. وللحصول على
حاوية أكثر اكتمالًا في الميزات:- الاحتفاظ بـ
/home/node: export OPENCLAW_HOME_VOLUME="openclaw_home" - إدراج تبعيات النظام ضمن الصورة:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - تثبيت متصفحات Playwright:
- الاحتفاظ بتنزيلات المتصفح: اضبط
PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwrightواستخدمOPENCLAW_HOME_VOLUMEأوOPENCLAW_EXTRA_MOUNTS.
OpenAI Codex OAuth (Docker بدون واجهة)
OpenAI Codex OAuth (Docker بدون واجهة)
إذا اخترت OpenAI Codex OAuth في المعالج، فسيفتح عنوان URL في المتصفح. في
إعدادات Docker أو الإعدادات بدون واجهة، انسخ عنوان URL الكامل لإعادة التوجيه الذي تصل إليه والصقه
مرة أخرى في المعالج لإكمال المصادقة.
بيانات تعريف الصورة الأساسية
بيانات تعريف الصورة الأساسية
تستخدم صورة Docker الرئيسية
node:24-bookworm وتنشر تعليقات توضيحية
خاصة بصورة OCI الأساسية بما في ذلك org.opencontainers.image.base.name,
وorg.opencontainers.image.source، وغيرها. راجع
OCI image annotations.التشغيل على VPS؟
راجع Hetzner (Docker VPS) و Docker VM Runtime لخطوات نشر VM المشتركة بما في ذلك إدراج binaries في الصورة، والاستمرارية، والتحديثات.Agent Sandbox
عندما تكونagents.defaults.sandbox مفعلة، تشغّل gateway تنفيذ أدوات الوكيل
(shell وقراءة/كتابة الملفات، وما إلى ذلك) داخل حاويات Docker معزولة بينما تبقى
gateway نفسها على المضيف. يوفّر لك هذا حاجزًا صلبًا حول جلسات الوكيل غير الموثوقة أو متعددة المستأجرين من دون وضع gateway بالكامل داخل حاوية.
يمكن أن يكون نطاق sandbox لكل وكيل (الافتراضي)، أو لكل جلسة، أو مشتركًا. ويحصل كل نطاق
على مساحة العمل الخاصة به مركّبة عند /workspace. ويمكنك أيضًا تكوين
سياسات السماح/المنع للأدوات، وعزل الشبكة، وحدود الموارد، وحاويات المتصفح.
للاطلاع على التكوين الكامل، والصور، والملاحظات الأمنية، وملفات الوكلاء المتعددة، راجع:
- Sandboxing — المرجع الكامل لـ sandbox
- OpenShell — وصول shell تفاعلي إلى حاويات sandbox
- Multi-Agent Sandbox and Tools — تجاوزات لكل وكيل
تمكين سريع
استكشاف الأخطاء وإصلاحها
الصورة مفقودة أو حاوية sandbox لا تبدأ
الصورة مفقودة أو حاوية sandbox لا تبدأ
ابنِ صورة sandbox باستخدام
scripts/sandbox-setup.sh
أو اضبط agents.defaults.sandbox.docker.image على صورتك المخصصة.
تُنشأ الحاويات تلقائيًا لكل جلسة عند الطلب.أخطاء الأذونات في sandbox
أخطاء الأذونات في sandbox
اضبط
docker.user على UID:GID يطابق ملكية مساحة العمل المركّبة لديك،
أو غيّر ملكية مجلد مساحة العمل.الأدوات المخصصة غير موجودة في sandbox
الأدوات المخصصة غير موجودة في sandbox
يشغّل OpenClaw الأوامر باستخدام
sh -lc (login shell)، والتي تستورد
/etc/profile وقد تعيد ضبط PATH. اضبط docker.env.PATH لإضافة
مسارات أدواتك المخصصة في البداية، أو أضف script تحت /etc/profile.d/ في Dockerfile لديك.تم إنهاء البناء بسبب OOM (الخروج 137)
تم إنهاء البناء بسبب OOM (الخروج 137)
تحتاج VM إلى 2 GB RAM على الأقل. استخدم فئة جهاز أكبر ثم أعد المحاولة.
Unauthorized أو pairing required في Control UI
Unauthorized أو pairing required في Control UI
يعرض هدف Gateway القيمة ws://172.x.x.x أو تظهر أخطاء pairing من Docker CLI
يعرض هدف Gateway القيمة ws://172.x.x.x أو تظهر أخطاء pairing من Docker CLI
أعد ضبط وضع gateway والربط:
ذو صلة
- Install Overview — جميع طرق التثبيت
- Podman — بديل Podman لـ Docker
- ClawDock — إعداد Docker Compose مجتمعي
- Updating — إبقاء OpenClaw محدثًا
- Configuration — تكوين gateway بعد التثبيت