Skip to main content
Docker اختياري. استخدمه لبيئة Gateway معزولة وقابلة للتخلص منها، أو على مضيف بلا عمليات تثبيت محلية. إذا كنت تطوّر بالفعل على جهازك، فاستخدم مسار التثبيت المعتاد بدلًا من ذلك. تستخدم الواجهة الخلفية الافتراضية للعزل Docker عند تمكين agents.defaults.sandbox، لكن العزل معطّل افتراضيًا ولا يتطلب تشغيل Gateway نفسه داخل Docker. تتوفر أيضًا واجهات خلفية للعزل عبر SSH وOpenShell؛ راجع العزل. هل تستضيف عدة مستخدمين؟ راجع الاستضافة متعددة المستأجرين للاطلاع على نموذج خلية واحدة لكل مستأجر.

المتطلبات الأساسية

  • Docker Desktop (أو Docker Engine) + Docker Compose v2
  • ذاكرة RAM بسعة 2 GB على الأقل لبناء الصورة (قد تُنهى pnpm install بسبب نفاد الذاكرة على مضيفين بسعة 1 GB مع رمز الخروج 137)
  • مساحة قرص كافية للصور والسجلات
  • على VPS/مضيف عام، راجع تعزيز الأمان عند التعرض للشبكة، ولا سيما سلسلة جدار الحماية DOCKER-USER في Docker

Gateway داخل حاوية

1

بناء الصورة

من جذر المستودع:
يؤدي هذا إلى بناء صورة Gateway محليًا باسم openclaw:local. لاستخدام صورة مبنية مسبقًا بدلًا من ذلك:
تُنشر الصور المبنية مسبقًا أولًا في سجل حاويات GitHub. يُعد GHCR السجل الأساسي لأتمتة الإصدارات وعمليات النشر المثبتة وفحوصات المنشأ. ينشر الإصدار نفسه نسخة مطابقة على Docker Hub في openclaw/openclaw:
استخدم ghcr.io/openclaw/openclaw أو openclaw/openclaw وتجنب النسخ المطابقة غير الرسمية، لأنها لا تتبع توقيت إصدارات OpenClaw أو سياسة الاحتفاظ الخاصة به. الوسوم الرسمية: main وlatest و<version> (مثل 2026.2.26)، ووسوم الإصدار التجريبي مثل 2026.2.26-beta.1 (لا تنقل الإصدارات التجريبية مطلقًا latest/main). تتضمن صورة main/latest/<version> الافتراضية ملحقي codex وdiagnostics-otel. ويتوفر أيضًا متغير -browser (مثل latest-browser) مع Chromium مضمّنًا، وهو مفيد لأداة المتصفح المعزول من دون تثبيت Playwright عند التشغيل الأول.
2

إعادة التشغيل في بيئة معزولة عن الشبكة

على المضيفين غير المتصلين، انقل الصورة وحمّلها أولًا:
يتحقق --offline من أن OPENCLAW_IMAGE موجودة محليًا بالفعل، ويعطّل عمليات السحب/البناء الضمنية في Compose، ثم يشغّل المسار المعتاد: مزامنة .env، وإصلاحات الأذونات، والتهيئة الأولية، ومزامنة إعدادات Gateway، وبدء Compose.إذا كانت OPENCLAW_SANDBOX=1، فإن الإعداد دون اتصال يتحقق أيضًا من صور العزل الافتراضية والمحددة لكل وكيل على البرنامج الخفي خلف OPENCLAW_DOCKER_SOCKET، بما في ذلك تسمية عقد المتصفح على صور المتصفح المدعومة بـ Docker. إذا كانت صورة مطلوبة مفقودة أو قديمة، يخرج الإعداد دون تغيير إعدادات العزل بدلًا من الإبلاغ عن نجاح زائف.
3

إكمال التهيئة الأولية

يشغّل برنامج الإعداد النصي التهيئة الأولية تلقائيًا:
  • يطلب مفاتيح API الخاصة بالموفّر
  • ينشئ رمز Gateway مميزًا ويكتبه في .env
  • ينشئ دليل المفتاح السري لملف تعريف المصادقة
  • يشغّل Gateway عبر Docker Compose
تُنفّذ التهيئة الأولية وكتابات الإعدادات السابقة للتشغيل عبر openclaw-gateway مباشرةً (باستخدام --no-deps --entrypoint node)، لأن openclaw-cli تشترك في مساحة أسماء شبكة Gateway ولا تعمل إلا بعد وجود حاوية Gateway.
4

فتح واجهة التحكم

افتح http://127.0.0.1:18789/ والصق الرمز المميز المكتوب في .env ضمن Settings. إذا بدّلت الحاوية إلى المصادقة بكلمة مرور، فاستخدم كلمة المرور تلك بدلًا من ذلك.هل تحتاج إلى عنوان URL مرة أخرى؟
5

إعداد القنوات (اختياري)

الوثائق: WhatsApp، Telegram، Discord

المسار اليدوي

يستبعد سياق Docker العنصر .git. مرّر هوية المصدر كوسيطات بناء كما هو موضح أعلاه، لكي تعرض شاشة «حول» في الصورة الالتزام المسحوب وطابعًا زمنيًا واحدًا للبناء. يحل scripts/docker/setup.sh القيمتين ويمررهما تلقائيًا.
شغّل docker compose من جذر المستودع. إذا مكّنت OPENCLAW_EXTRA_MOUNTS أو OPENCLAW_HOME_VOLUME، يكتب برنامج الإعداد النصي docker-compose.extra.yml؛ أدرجه بعد أي docker-compose.override.yml تديره بنفسك، مثل -f docker-compose.yml -f docker-compose.override.yml -f docker-compose.extra.yml.

ترقية صور الحاويات

عندما تستبدل صورة OpenClaw مع الاحتفاظ بالحالة/الإعدادات الموصولة نفسها، يشغّل Gateway الجديد ترحيلات ترقية آمنة عند بدء التشغيل وتقارب Plugin قبل الجاهزية. ينبغي ألا تتطلب ترقيات الصور الروتينية تنفيذًا منفصلًا لـ openclaw doctor --fix. إذا تعذر على بدء التشغيل إكمال هذه الإصلاحات بأمان، يخرج Gateway بدلًا من الإبلاغ بأنه سليم. مع وجود سياسة إعادة تشغيل، قد تعرض Docker أو Podman أو Kubernetes حاوية Gateway وهي تعيد التشغيل. احتفظ بوحدة تخزين الحالة الموصولة، ثم شغّل الصورة نفسها مرة واحدة باستخدام openclaw doctor --fix كأمر للحاوية، مع استخدام عمليات وصل الحالة/الإعدادات نفسها التي يستخدمها Gateway:
بعد انتهاء أداة doctor، أعد تشغيل حاوية Gateway باستخدام أمرها الافتراضي. في Kubernetes، شغّل الأمر نفسه ضمن Job لمرة واحدة أو حجرة تصحيح أخطاء موصولة بوحدة PVC نفسها، ثم أعد تشغيل Deployment أو StatefulSet.

متغيرات البيئة

المتغيرات الاختيارية التي تقبلها scripts/docker/setup.sh (وكذلك docker-compose.yml مباشرةً بالنسبة إلى حاوية Gateway): لا تتضمن الصورة الرسمية Homebrew. أثناء التهيئة الأولية، يخفي OpenClaw مثبّتات اعتماديات Skills التي تعمل عبر brew فقط داخل حاوية Linux لا تحتوي على brew؛ وفّر تلك الاعتماديات من خلال صورة مخصصة أو ثبّتها يدويًا. استخدم OPENCLAW_IMAGE_APT_PACKAGES للاعتماديات المحزّمة لـ Debian وOPENCLAW_IMAGE_PIP_PACKAGES لاعتماديات Python (يشغّل python3 -m pip install --break-system-packages وقت البناء، لذا ثبّت الإصدارات واستخدم الفهارس التي تثق بها فقط). إذا أبلغ Docker عن ResourceExhausted أو cannot allocate memory، أو أوقف العملية أثناء tsdown، فارفع حد ذاكرة أداة بناء Docker أو أعد المحاولة باستخدام أكوام صريحة أصغر:

الصور المبنية من المصدر مع Plugins محددة

OPENCLAW_EXTENSIONS يحدّد معرّفات بيانات تعريف Plugins من نسخة المصدر؛ كما تُقبل أسماء أدلة المصدر الحالية عندما تختلف. يحوّل بناء Docker التحديد إلى أدلة مصدر مرة واحدة، ويثبّت تبعيات الإنتاج، وعندما يُنشر Plugin محدد بصورة منفصلة باستخدام openclaw.build.bundledDist: false، يترجم وقت تشغيله إلى حزمة dist الجذرية المضمّنة. لا تغيّر هذه الحزمة الخاصة بـ Docker عقد عناصر npm أو ClawHub الخاصة بالـ Plugin. تؤدي المعرّفات المجهولة أو غير الصالحة أو الملتبسة إلى فشل بناء الصورة. تحتفظ معرّفات التبعيات/المصدر فقط المعروفة بتجهيز المصدر والتبعيات الحالي من دون الحصول على مُدخل dist جذري مترجم. يجب أن ينجح تجميع Plugin محدد ذي مُدخلات بناء موحّدة؛ وتُزال مخرجات المصدر ووقت التشغيل الخاصة بـ Plugins الخارجية غير المحددة. على سبيل المثال، تنشئ هذه الأوامر صور Gateway مستقلة ومنفصلة ومتعددة البنى لـ FakeCo من أجل ClickClack وSlack وMicrosoft Teams. يشكّل ClawRouter بالفعل جزءًا من وقت تشغيل OpenClaw الجذري، لذا تحدد صورة ClickClack فقط clickclack. تُبقي وسيطة المتصفح الفارغة الصريحة الصورة الافتراضية خالية من Chromium:
استخدم --platform linux/arm64 --load أو --platform linux/amd64 --load لإجراء بناء محلي أصلي لمنصة واحدة. تتطلب المخرجات متعددة المنصات وSBOM/إثبات المنشأ المرفق سجلًا أو مخرج Buildx آخر يحافظ على الإقرارات. بعد الدفع، افحص بيان الصورة وانشر الملخص الثابت بدلًا من وسم SHA المصدر القابل للتغيير:
هذه الصور مخصصة لبوابات مستقلة قائمة على OCI ولمستخدمي Docker العموميين. لا تستخدمها البوابات التي يديرها Crabhelm: إذ ينشئ مسار التسليم هذا أرشيف جهاز x86_64 منفصلًا يحتوي على حزمة OpenClaw من npm ويثبّت ملخصات Node والأرشيف والبيان. أنشئ ذلك الجهاز بصورة مستقلة من مصدر OpenClaw المدمج نفسه. لاختبار مصدر Plugin مضمّن مقابل صورة محزّمة، ثبّت دليل مصدر Plugin واحدًا فوق مسار مصدره المحزّم، مثل OPENCLAW_EXTRA_MOUNTS=/path/to/fork/extensions/synology-chat:/app/extensions/synology-chat:ro. يتجاوز ذلك حزمة /app/dist/extensions/synology-chat المترجمة المطابقة لمعرّف Plugin نفسه.

قابلية الرصد

يكون تصدير OpenTelemetry صادرًا من حاوية Gateway إلى جامع OTLP لديك؛ ولا يحتاج إلى منفذ Docker منشور. لتضمين المُصدّر المضمّن في صورة منشأة محليًا:
تضمّن الصور الرسمية المنشأة مسبقًا diagnostics-otel بالفعل؛ ثبّت clawhub:@openclaw/diagnostics-otel بنفسك فقط إذا أزلته. لتمكين التصدير، اسمح بالـ Plugin ‏diagnostics-otel وفعّله في الإعدادات، ثم عيّن diagnostics.otel.enabled=true (راجع المثال الكامل في تصدير OpenTelemetry). تمر ترويسات مصادقة الجامع عبر diagnostics.otel.headers، وليس عبر متغيرات بيئة Docker. تعيد مقاييس Prometheus استخدام منفذ Gateway المنشور بالفعل. ثبّت clawhub:@openclaw/diagnostics-prometheus، وفعّل Plugin ‏diagnostics-prometheus، ثم نفّذ الاستخلاص:
المسار محمي بمصادقة Gateway؛ لا تعرض منفذ /metrics عامًا منفصلًا أو مسار وكيل عكسي بلا مصادقة. راجع مقاييس Prometheus.

فحوصات السلامة

نقاط نهاية فحص الحاوية (لا تتطلب مصادقة):
يرسل HEALTHCHECK المضمّن في الصورة طلب فحص إلى /healthz؛ وتضع حالات الفشل المتكررة علامة unhealthy على الحاوية لكي تتمكن أنظمة التنسيق من إعادة تشغيلها أو استبدالها. لقطة سلامة عميقة موثّقة:

الشبكة المحلية مقابل الاسترجاع الحلقي

يضبط 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.

المزوّدون المحليون على المضيف

داخل الحاوية، يشير 127.0.0.1 إلى الحاوية نفسها، لا إلى المضيف. استخدم host.docker.internal للمزوّدين العاملين على المضيف: يستخدم الإعداد المضمّن عناوين URL هذه كقيم افتراضية لإعداد LM Studio/Ollama، ويربط docker-compose.ymlhost.docker.internal ببوابة المضيف على Docker Engine في Linux (يوفّر Docker Desktop الاسم البديل نفسه على macOS/Windows). يجب أن تستمع خدمات المضيف على عنوان يستطيع Docker الوصول إليه:
هل تستخدم ملف Compose خاصًا بك أو docker run؟ أضف الربط نفسه بنفسك، مثل --add-host=host.docker.internal:host-gateway.

الواجهة الخلفية لـ Claude CLI في Docker

لا تثبّت الصورة الرسمية Claude Code مسبقًا. ثبّته وسجّل الدخول داخل مستخدم الحاوية node، ثم اجعل مجلد الحاوية الرئيسي دائمًا كي لا تمحو ترقيات الصورة الملف التنفيذي أو حالة المصادقة. لتثبيت جديد، فعّل وحدة تخزين /home/node دائمة قبل تشغيل الإعداد:
بالنسبة إلى تثبيت قائم، أوقف المكدس وأعد تحميل قيم .env الحالية أولًا — يعيد برنامج الإعداد النصي دائمًا كتابة .env من الصدفة الحالية والقيم الافتراضية، ولا يقرأ الملف من تلقاء نفسه:
إذا احتوى .env على قيم لا تستطيع الصدفة تحميلها، فأعد تصدير ما تعتمد عليه يدويًا أولًا (OPENCLAW_IMAGE، والمنافذ، ووضع الربط، والمسارات المخصصة، وOPENCLAW_EXTRA_MOUNTS، ووضع الحماية، وتخطي الإعداد الأولي). يثبّت التراكب المُنشأ وحدة التخزين الرئيسية لكل من openclaw-gateway وopenclaw-cli؛ نفّذ الأوامر المتبقية باستخدام ذلك التراكب (وdocker-compose.override.yml أولًا، إذا كنت تستخدم واحدًا):
يكتب المثبّت الأصلي claude إلى /home/node/.local/bin/claude. وجّه OpenClaw إلى ذلك المسار:
سجّل الدخول وتحقق من المجلد الرئيسي الدائم نفسه:
ثم استخدم الواجهة الخلفية المضمّنة claude-cli:
يجعل OPENCLAW_HOME_VOLUME التثبيت الأصلي دائمًا ضمن /home/node/.local/bin و/home/node/.local/share/claude، بالإضافة إلى إعدادات/مصادقة Claude Code ضمن /home/node/.claude و/home/node/.claude.json. لا يكفي جعل /home/node/.openclaw دائمًا وحده؛ إذا كنت تستخدم OPENCLAW_EXTRA_MOUNTS بدلًا من وحدة تخزين رئيسية، فثبّت جميع مسارات Claude تلك في كلتا الخدمتين.
لأتمتة الإنتاج المشتركة أو فواتير Anthropic القابلة للتنبؤ، يُفضّل استخدام مسار مفتاح Anthropic API. تتبع إعادة استخدام Claude CLI الإصدار المثبّت من Claude Code وتسجيل دخول الحساب والفوترة وسلوك التحديث.

Bonjour / mDNS

لا تمرّر شبكة جسر Docker عادةً بث Bonjour/mDNS المتعدد (224.0.0.251:5353) بصورة موثوقة. عندما لا يكون OPENCLAW_DISABLE_BONJOUR معيّنًا، يعطّل Plugin ‏Bonjour المضمّن تلقائيًا الإعلان على الشبكة المحلية بمجرد اكتشاف أنه يعمل داخل حاوية، كي لا يدخل في حلقة أعطال أثناء إعادة محاولة البث المتعدد الذي يسقطه الجسر. عيّن OPENCLAW_DISABLE_BONJOUR=1 لفرض تعطيله بصرف النظر عن الاكتشاف، أو 0 لفرض تفعيله (على شبكة المضيف أو macvlan أو شبكة أخرى يُعرف أن بث mDNS المتعدد يعمل عليها فقط). استخدم عنوان URL المنشور لـ Gateway أو Tailscale أو DNS-SD واسع النطاق لمضيفي Docker في الحالات الأخرى. راجع اكتشاف Bonjour للاطلاع على المحاذير واستكشاف الأخطاء وإصلاحها.

التخزين والاستمرارية

يثبّت Docker Compose بالربط OPENCLAW_CONFIG_DIR إلى /home/node/.openclaw، وOPENCLAW_WORKSPACE_DIR إلى /home/node/.openclaw/workspace، وOPENCLAW_AUTH_PROFILE_SECRET_DIR إلى /home/node/.config/openclaw، بحيث تبقى هذه المسارات بعد استبدال الحاوية. عندما لا يكون أحد المتغيرات معيّنًا، يعود docker-compose.yml إلى مسار ضمن ${HOME}، أو /tmp إذا كان HOME نفسه مفقودًا، بحيث لا يُنتج docker compose up أبدًا مواصفة وحدة تخزين ذات مصدر فارغ في البيئات الأساسية. يحتوي دليل الإعدادات المثبّت على:
  • openclaw.json لإعدادات السلوك
  • agents/<agentId>/agent/auth-profiles.json لمصادقة OAuth/مفتاح API المخزنة الخاصة بالمزوّد
  • .env لأسرار وقت التشغيل المدعومة بالبيئة مثل OPENCLAW_GATEWAY_TOKEN
يخزّن دليل أسرار ملف تعريف المصادقة مفتاح التشفير المحلي لمواد رموز ملف تعريف المصادقة المدعومة بـ OAuth. احتفظ به مع حالة مضيف Docker، لكن بصورة منفصلة عن OPENCLAW_CONFIG_DIR. تخزّن Plugins المثبّتة القابلة للتنزيل حالة الحزمة ضمن مجلد OpenClaw الرئيسي المثبّت، بحيث تبقى سجلات التثبيت وجذور الحزم بعد استبدال الحاوية؛ ولا تعيد بداية تشغيل Gateway إنشاء أشجار تبعيات Plugins المضمّنة. للحصول على التفاصيل الكاملة حول الاستمرارية في الجهاز الافتراضي، راجع وقت تشغيل جهاز Docker الافتراضي - ما الذي يبقى وأين. مواضع النمو السريع للقرص: media/، وقواعد بيانات SQLite لكل وكيل، ونصوص جلسات JSONL القديمة، وقاعدة بيانات حالة SQLite المشتركة، وجذور حزم Plugins المثبّتة، وسجلات الملفات المتعاقبة ضمن /tmp/openclaw/.

أدوات الصدفة المساعدة (اختيارية)

لأوامر الاستخدام اليومي الأقصر، ثبّت ClawDock:
إذا ثبّتَّ من مسار scripts/shell-helpers/clawdock-helpers.sh الأقدم، فأعِد تشغيل الأمر أعلاه كي تتتبّع الأداة المساعدة المحلية الموقع الحالي. ثم استخدم clawdock-start وclawdock-stop وclawdock-dashboard وما إلى ذلك (شغّل clawdock-help للاطلاع على القائمة الكاملة).
مسار مقبس مخصص (مثل Docker بلا صلاحيات الجذر):
لا يركّب البرنامج النصي docker.sock إلا بعد اجتياز المتطلبات الأساسية للعزل. إذا تعذّر إكمال إعداد العزل، فإنه يعيد ضبط agents.defaults.sandbox.mode إلى off. يُعطَّل وضع التعليمات البرمجية في Codex أثناء الأدوار التي يكون فيها عزل OpenClaw نشطًا (راجع العزل § الواجهة الخلفية لـ Docker)؛ ولا تركّب مطلقًا مقبس Docker الخاص بالمضيف داخل حاويات عزل الوكيل.
عطّل تخصيص الطرفية الزائفة في Compose باستخدام -T:
يستخدم openclaw-clinetwork_mode: "service:openclaw-gateway" كي تتمكن أوامر CLI من الوصول إلى Gateway عبر 127.0.0.1. تعامل مع هذا بوصفه حدّ ثقة مشتركًا. يُسقط إعداد Compose ‏NET_RAW/NET_ADMIN ويمكّن no-new-privileges على كل من openclaw-gateway وopenclaw-cli.
تفشل عمليات بحث DNS في بعض إعدادات Docker Desktop من الحاوية الجانبية openclaw-cli ذات الشبكة المشتركة بعد إسقاط NET_RAW، ويظهر ذلك على هيئة EAI_AGAIN أثناء الأوامر المعتمدة على npm مثل openclaw plugins install. احتفظ بملف Compose المحصّن الافتراضي للتشغيل العادي. يعيد التجاوز أدناه الإمكانات الافتراضية لحاوية openclaw-cli فقط — استخدمه للأمر المنفرد الذي يحتاج إلى الوصول إلى السجل، لا بوصفه طريقة الاستدعاء الافتراضية:
إذا كنت قد أنشأت بالفعل حاوية openclaw-cli طويلة التشغيل، فأعِد إنشاءها باستخدام التجاوز نفسه — لا يستطيع docker compose exec/docker exec تغيير إمكانات Linux في حاوية أُنشئت بالفعل.
تعمل الصورة باسم node ‏(uid 1000). إذا ظهرت أخطاء أذونات على /home/node/.openclaw، فتأكد من أن عمليات الربط من المضيف مملوكة لـ uid 1000:
قد يظهر عدم التطابق نفسه على هيئة blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root) متبوعًا بـ plugin present but blocked — إذ لا يتطابق uid الخاص بالعملية مع مالك دليل Plugin المركّب. يُفضّل التشغيل باستخدام uid 1000 الافتراضي وإصلاح ملكية ربط المضيف. لا تغيّر ملكية /path/to/openclaw-config/npm إلى root:root إلا إذا كنت تشغّل OpenClaw عمدًا بصلاحيات الجذر على المدى الطويل.
رتّب Dockerfile بحيث تُخزَّن طبقات التبعيات مؤقتًا، لتجنب إعادة تشغيل pnpm install ما لم تتغير ملفات القفل:
تعطي الصورة الافتراضية الأولوية للأمان وتعمل باسم node من دون صلاحيات الجذر. للحصول على حاوية أكثر تكاملًا:
  1. الاحتفاظ بـ /home/node: export OPENCLAW_HOME_VOLUME="openclaw_home"
  2. تضمين تبعيات النظام في الصورة: export OPENCLAW_IMAGE_APT_PACKAGES="git curl jq"
  3. تضمين تبعيات Python في الصورة: export OPENCLAW_IMAGE_PIP_PACKAGES="requests==2.32.5 humanize==4.14.0"
  4. تضمين Playwright Chromium في الصورة: export OPENCLAW_INSTALL_BROWSER=1، أو استخدم وسم صورة -browser الرسمي
  5. أو ثبّت متصفحات Playwright في وحدة تخزين دائمة:
  6. الاحتفاظ بتنزيلات المتصفح: استخدم OPENCLAW_HOME_VOLUME أو OPENCLAW_EXTRA_MOUNTS. يكتشف OpenClaw تلقائيًا Chromium المُدار بواسطة Playwright في الصورة على Linux.
إذا اخترت OpenAI Codex OAuth في المعالج، فسيفتح عنوان URL في المتصفح. في Docker أو الإعدادات بلا واجهة رسومية، انسخ عنوان URL الكامل لإعادة التوجيه الذي تصل إليه والصقه مرة أخرى في المعالج لإكمال المصادقة.
تستخدم صورة وقت التشغيل node:24-bookworm-slim وتشغّل tini بوصفه PID 1 بحيث تُجمع العمليات المتوقفة وتُعالَج الإشارات بصورة صحيحة في الحاويات طويلة التشغيل. وتنشر تعليقات توضيحية للصورة الأساسية وفق OCI، بما فيها org.opencontainers.image.base.name وorg.opencontainers.image.source. يحدّث Dependabot ملخّص صورة Node الأساسية المثبّت؛ ولا تشغّل إصدارات النشر طبقة منفصلة لترقية التوزيعة. راجع تعليقات صور OCI التوضيحية.

هل تعمل على VPS؟

راجع Hetzner ‏(Docker VPS) ووقت تشغيل Docker VM لمعرفة خطوات النشر على آلة افتراضية مشتركة، بما يشمل تضمين الملفات الثنائية في الصورة والاستمرارية والتحديثات.

عزل الوكيل

عند تمكين agents.defaults.sandbox مع الواجهة الخلفية لـ Docker، يشغّل Gateway أدوات الوكيل (الصدفة، وقراءة الملفات وكتابتها، وما إلى ذلك) داخل حاويات Docker معزولة، بينما يظل Gateway نفسه على المضيف — ما يوفر حاجزًا صلبًا حول جلسات الوكيل غير الموثوقة أو متعددة المستأجرين من دون وضع Gateway بأكمله داخل حاوية. يمكن أن يكون نطاق العزل لكل وكيل (الافتراضي)، أو لكل جلسة، أو مشتركًا؛ ويحصل كل نطاق على مساحة عمل خاصة به مركّبة عند /workspace. ويمكن أيضًا ضبط سياسات السماح بالأدوات أو منعها، وعزل الشبكة، وحدود الموارد، وحاويات المتصفح. للاطلاع على الإعداد الكامل والصور وملاحظات الأمان وملفات تعريف الوكلاء المتعددين:

التمكين السريع

ابنِ صورة العزل الافتراضية (من نسخة مصدرية مستنسخة):
لتثبيتات npm من دون نسخة مصدرية مستنسخة، راجع العزل § الصور والإعداد لمعرفة أوامر docker build المضمّنة.

استكشاف الأخطاء وإصلاحها

ابنِ صورة العزل باستخدام scripts/sandbox-setup.sh (نسخة مصدرية مستنسخة) أو أمر docker build المضمّن من العزل § الصور والإعداد (تثبيت npm)، أو اضبط agents.defaults.sandbox.docker.image على صورتك المخصصة. تُنشأ الحاويات تلقائيًا لكل جلسة عند الطلب.
اضبط docker.user على UID:GID يطابق ملكية مساحة العمل المركّبة، أو غيّر ملكية مجلد مساحة العمل.
يشغّل OpenClaw الأوامر باستخدام sh -lc (صدفة تسجيل دخول)، التي تحمّل /etc/profile وقد تعيد ضبط PATH. اضبط docker.env.PATH لإضافة مسارات أدواتك المخصصة في بداية PATH، أو أضف برنامجًا نصيًا ضمن /etc/profile.d/ في Dockerfile.
تحتاج الآلة الافتراضية إلى ذاكرة RAM بسعة 2 GB على الأقل. استخدم فئة آلة أكبر وأعِد المحاولة.
احصل على رابط لوحة معلومات جديد ووافق على جهاز المتصفح:
لمزيد من التفاصيل: لوحة المعلومات، الأجهزة.
أعِد ضبط وضع Gateway والربط:

ذو صلة