Containers
Docker
Docker اختياري اختياري. استخدمه فقط إذا كنت تريد Gateway داخل حاوية أو التحقق من مسار Docker.
هل Docker مناسب لي؟
- نعم: تريد بيئة Gateway معزولة ويمكن التخلص منها، أو تشغيل OpenClaw على مضيف من دون تثبيتات محلية.
- لا: تعمل على جهازك الخاص وتريد فقط أسرع حلقة تطوير. استخدم مسار التثبيت العادي بدلًا من ذلك.
- ملاحظة حول العزل: تستخدم واجهة العزل الخلفية الافتراضية Docker عند تمكين العزل، لكن العزل معطّل افتراضيًا ولا يتطلب أن يعمل Gateway بالكامل في Docker. تتوفر أيضًا واجهات العزل الخلفية SSH وOpenShell. راجع العزل.
المتطلبات المسبقة
- Docker Desktop (أو Docker Engine) + Docker Compose v2
- ذاكرة RAM لا تقل عن 2 GB لبناء الصورة (
pnpm installقد يُنهى بسبب نفاد الذاكرة على مضيفات 1 GB مع رمز الخروج 137) - مساحة قرص كافية للصور والسجلات
- إذا كنت تشغله على VPS/مضيف عام، فراجع
تقوية الأمان للتعرض الشبكي،
خصوصًا سياسة جدار الحماية Docker
DOCKER-USER.
Gateway داخل حاوية
بناء الصورة
من جذر المستودع، شغّل سكربت الإعداد:
./scripts/docker/setup.shيؤدي هذا إلى بناء صورة Gateway محليًا. لاستخدام صورة مبنية مسبقًا بدلًا من ذلك:
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"./scripts/docker/setup.shتُنشر الصور المبنية مسبقًا في
GitHub Container Registry.
الوسوم الشائعة: main، latest، <version> (مثلًا 2026.2.26).
إكمال التهيئة الأولية
يشغّل سكربت الإعداد التهيئة الأولية تلقائيًا. سيقوم بما يلي:
- طلب مفاتيح API الخاصة بالمزوّد
- إنشاء رمز Gateway وكتابته إلى
.env - إنشاء دليل مفتاح سر ملف تعريف المصادقة
- بدء تشغيل Gateway عبر Docker Compose
أثناء الإعداد، تُشغّل التهيئة الأولية قبل البدء وكتابات الإعدادات من خلال
openclaw-gateway مباشرة. يُستخدم openclaw-cli للأوامر التي تشغّلها بعد
أن تكون حاوية Gateway موجودة بالفعل.
فتح واجهة التحكم
افتح http://127.0.0.1:18789/ في متصفحك والصق السر المشترك المضبوط
في الإعدادات. يكتب سكربت الإعداد رمزًا إلى .env افتراضيًا؛ إذا بدّلت
إعداد الحاوية إلى مصادقة كلمة المرور، فاستخدم تلك الكلمة بدلًا من ذلك.
هل تحتاج إلى عنوان URL مرة أخرى؟
docker compose run --rm openclaw-cli dashboard --no-openإعداد القنوات (اختياري)
استخدم حاوية CLI لإضافة قنوات المراسلة:
# WhatsApp (QR)docker compose run --rm openclaw-cli channels login # Telegramdocker compose run --rm openclaw-cli channels add --channel telegram --token "<token>" # Discorddocker compose run --rm openclaw-cli channels add --channel discord --token "<token>"المسار اليدوي
إذا كنت تفضّل تشغيل كل خطوة بنفسك بدلًا من استخدام سكربت الإعداد:
docker build -t openclaw:local -f Dockerfile .docker compose run --rm --no-deps --entrypoint node openclaw-gateway \ dist/index.js onboard --mode local --no-install-daemondocker compose run --rm --no-deps --entrypoint node openclaw-gateway \ dist/index.js config set --batch-json '[{"path":"gateway.mode","value":"local"},{"path":"gateway.bind","value":"lan"},{"path":"gateway.controlUi.allowedOrigins","value":["http://localhost:18789","http://127.0.0.1:18789"]}]'docker compose up -d openclaw-gatewayمتغيرات البيئة
يقبل سكربت الإعداد متغيرات البيئة الاختيارية التالية:
| المتغير | الغرض |
|---|---|
OPENCLAW_IMAGE |
استخدام صورة بعيدة بدلًا من البناء محليًا |
OPENCLAW_DOCKER_APT_PACKAGES |
تثبيت حزم apt إضافية أثناء البناء (مفصولة بمسافات) |
OPENCLAW_EXTENSIONS |
تضمين مساعدين محددين من Plugins المضمّنة وقت البناء |
OPENCLAW_EXTRA_MOUNTS |
ربطات تركيب إضافية للمضيف (مفصولة بفواصل source:target[:opts]) |
OPENCLAW_HOME_VOLUME |
حفظ /home/node في مجلد Docker مسمّى |
OPENCLAW_SANDBOX |
الاشتراك في تمهيد العزل (1، true، yes، on) |
OPENCLAW_SKIP_ONBOARDING |
تخطي خطوة التهيئة الأولية التفاعلية (1، true، yes، on) |
OPENCLAW_DOCKER_SOCKET |
تجاوز مسار مقبس Docker |
OPENCLAW_DISABLE_BONJOUR |
تعطيل إعلان Bonjour/mDNS (القيمة الافتراضية 1 لـ Docker) |
OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS |
تعطيل طبقات تركيب ربط مصدر Plugin المضمّنة |
OTEL_EXPORTER_OTLP_ENDPOINT |
نقطة نهاية مجمّع OTLP/HTTP مشتركة لتصدير OpenTelemetry |
OTEL_EXPORTER_OTLP_*_ENDPOINT |
نقاط نهاية OTLP خاصة بالإشارات للتتبعات أو المقاييس أو السجلات |
OTEL_EXPORTER_OTLP_PROTOCOL |
تجاوز بروتوكول OTLP. لا يُدعم اليوم إلا http/protobuf |
OTEL_SERVICE_NAME |
اسم الخدمة المستخدم لموارد OpenTelemetry |
OTEL_SEMCONV_STABILITY_OPT_IN |
الاشتراك في أحدث السمات الدلالية التجريبية لـ GenAI |
OPENCLAW_OTEL_PRELOADED |
تخطي بدء SDK ثانٍ لـ OpenTelemetry عند تحميل واحد مسبقًا |
يمكن للمشرفين اختبار مصدر 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 منشورًا. إذا بنيت الصورة محليًا وتريد أن يكون مصدّر OpenTelemetry المضمّن متاحًا داخل الصورة، فضمّن اعتماديات وقت تشغيله:
export OPENCLAW_EXTENSIONS="diagnostics-otel"export OTEL_EXPORTER_OTLP_ENDPOINT="http://otel-collector:4318"export OTEL_SERVICE_NAME="openclaw-gateway"./scripts/docker/setup.shثبّت Plugin الرسمي @openclaw/diagnostics-otel من ClawHub في
تثبيتات Docker المعبأة قبل تمكين التصدير. لا تزال الصور المخصّصة المبنية من المصدر قادرة على
تضمين مصدر Plugin المحلي باستخدام
OPENCLAW_EXTENSIONS=diagnostics-otel. لتمكين التصدير، اسمح بتمكين
Plugin diagnostics-otel في الإعدادات وفعّله، ثم عيّن
diagnostics.otel.enabled=true أو استخدم مثال الإعدادات في تصدير OpenTelemetry
. تُضبط ترويسات مصادقة المجمّع من خلال
diagnostics.otel.headers، وليس من خلال متغيرات بيئة Docker.
تستخدم مقاييس Prometheus منفذ Gateway المنشور بالفعل. ثبّت
clawhub:@openclaw/diagnostics-prometheus، وفعّل
Plugin diagnostics-prometheus، ثم اجمع المقاييس:
http://<gateway-host>:18789/api/diagnostics/prometheusالمسار محمي بمصادقة Gateway. لا تكشف منفذًا عامًا منفصلًا
لـ /metrics أو مسار وكيل عكسيًا غير مصادق عليه. راجع
مقاييس Prometheus.
فحوصات الصحة
نقاط نهاية فحص الحاوية (لا تتطلب مصادقة):
curl -fsS http://127.0.0.1:18789/healthz # livenesscurl -fsS http://127.0.0.1:18789/readyz # readinessتتضمن صورة Docker أمر HEALTHCHECK مدمجًا يفحص /healthz.
إذا استمرت الفحوصات بالفشل، يعلّم Docker الحاوية على أنها unhealthy ويمكن
لأنظمة التنسيق إعادة تشغيلها أو استبدالها.
لقطة صحة عميقة موثّقة:
docker compose exec openclaw-gateway node dist/index.js health --token "$OPENCLAW_GATEWAY_TOKEN"LAN مقابل loopback
يضبط scripts/docker/setup.sh القيمة الافتراضية OPENCLAW_GATEWAY_BIND=lan بحيث يعمل وصول المضيف إلى
http://127.0.0.1:18789 مع نشر منفذ Docker.
lan(افتراضي): يستطيع متصفح المضيف وCLI على المضيف الوصول إلى منفذ Gateway المنشور.loopback: لا تستطيع الوصول إلى Gateway مباشرة إلا العمليات داخل مساحة أسماء شبكة الحاوية.
مزوّدو المضيف المحليون
عندما يعمل OpenClaw في Docker، فإن 127.0.0.1 داخل الحاوية هو الحاوية
نفسها، وليس جهاز المضيف لديك. استخدم host.docker.internal لمزوّدي الذكاء الاصطناعي الذين
يعملون على المضيف:
| المزوّد | عنوان URL الافتراضي للمضيف | عنوان URL لإعداد Docker |
|---|---|---|
| LM Studio | http://127.0.0.1:1234 |
http://host.docker.internal:1234 |
| Ollama | http://127.0.0.1:11434 |
http://host.docker.internal:11434 |
يستخدم إعداد Docker المضمّن عناوين URL الخاصة بالمضيف تلك كقيم افتراضية للتهيئة الأولية
لـ LM Studio وOllama، ويربط docker-compose.yml الاسم host.docker.internal بـ
Gateway المضيف في Docker لـ Linux Docker Engine. يوفر Docker Desktop بالفعل
اسم المضيف نفسه على macOS وWindows.
يجب أن تستمع خدمات المضيف أيضًا على عنوان يمكن الوصول إليه من Docker:
lms server start --port 1234 --bind 0.0.0.0OLLAMA_HOST=0.0.0.0:11434 ollama serveإذا كنت تستخدم ملف Compose الخاص بك أو أمر docker run، فأضف تعيين المضيف
نفسه بنفسك، مثلًا
--add-host=host.docker.internal:host-gateway.
Bonjour / mDNS
عادةً لا تمرر شبكات جسر Docker بث Bonjour/mDNS المتعدد
(224.0.0.251:5353) بشكل موثوق. لذلك يضبط إعداد Compose المضمّن
OPENCLAW_DISABLE_BONJOUR=1 افتراضيًا حتى لا يدخل Gateway في حلقة تعطل أو يعيد
بدء الإعلان مرارًا عندما يسقط الجسر حركة البث المتعدد.
استخدم عنوان URL المنشور لـ Gateway، أو Tailscale، أو DNS-SD واسع النطاق لمضيفي Docker.
عيّن OPENCLAW_DISABLE_BONJOUR=0 فقط عند التشغيل مع شبكة المضيف، أو macvlan،
أو شبكة أخرى يُعرف أن بث mDNS المتعدد يعمل فيها.
للمشكلات الشائعة واستكشاف الأخطاء وإصلاحها، راجع اكتشاف 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 بما يلي:
openclaw.jsonلإعدادات السلوكagents/<agentId>/agent/auth-profiles.jsonلمصادقة OAuth/API-key المحفوظة الخاصة بالمزوّدين.envلأسرار وقت التشغيل المدعومة بالبيئة مثلOPENCLAW_GATEWAY_TOKEN
يخزّن دليل مفتاح سر ملف تعريف المصادقة مفتاح التشفير المحلي المستخدم
لمواد رمز ملف تعريف المصادقة المدعومة بـ OAuth. احتفظ به مع حالة مضيف Docker لديك،
لكن منفصلًا عن OPENCLAW_CONFIG_DIR.
تخزّن Plugins القابلة للتنزيل والمثبتة حالة حِزمها ضمن مجلد OpenClaw الرئيسي المركّب، لذلك تبقى سجلات تثبيت Plugin وجذور الحِزم بعد استبدال الحاوية. لا ينشئ بدء تشغيل Gateway أشجار تبعيات Plugins المضمّنة.
للحصول على التفاصيل الكاملة للاستمرارية في عمليات نشر VM، راجع وقت تشغيل Docker VM - ما الذي يستمر وأين.
النقاط الأكثر تسببًا في نمو القرص: راقب media/، وملفات JSONL الخاصة بالجلسات،
وcron/runs/*.jsonl، وجذور حِزم Plugin المثبتة، وسجلات الملفات الدوّارة
ضمن /tmp/openclaw/.
مساعدات Shell (اختيارية)
لتسهيل إدارة Docker اليومية، ثبّت ClawDock:
mkdir -p ~/.clawdock && curl -sL https://raw.githubusercontent.com/openclaw/openclaw/main/scripts/clawdock/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.shecho 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrcإذا كنت قد ثبّت ClawDock من المسار الخام الأقدم scripts/shell-helpers/clawdock-helpers.sh، فأعد تشغيل أمر التثبيت أعلاه حتى يتتبع ملف المساعد المحلي الموقع الجديد.
ثم استخدم clawdock-start، وclawdock-stop، وclawdock-dashboard، وما إلى ذلك. شغّل
clawdock-help لكل الأوامر.
راجع ClawDock للحصول على دليل المساعد الكامل.
تفعيل وضع حماية الوكيل لـ Docker gateway
export OPENCLAW_SANDBOX=1./scripts/docker/setup.shمسار مقبس مخصص (مثل Docker دون root):
export OPENCLAW_SANDBOX=1export OPENCLAW_DOCKER_SOCKET=/run/user/1000/docker.sock./scripts/docker/setup.shلا يركّب السكربت docker.sock إلا بعد نجاح متطلبات وضع الحماية الأساسية. إذا
تعذر إكمال إعداد وضع الحماية، يعيد السكربت ضبط agents.defaults.sandbox.mode
إلى off. تظل جولات وضع كود Codex مقيّدة بـ Codex
workspace-write أثناء نشاط وضع حماية OpenClaw؛ لا تركّب
مقبس Docker الخاص بالمضيف داخل حاويات وضع حماية الوكلاء.
الأتمتة / CI (غير تفاعلي)
عطّل تخصيص Compose pseudo-TTY باستخدام -T:
docker compose run -T --rm openclaw-cli gateway probedocker compose run -T --rm openclaw-cli devices list --jsonملاحظة أمان الشبكة المشتركة
يستخدم openclaw-cli الإعداد network_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
تفشل بعض إعدادات Docker Desktop في عمليات بحث DNS من حاوية
openclaw-cli الجانبية ذات الشبكة المشتركة بعد إسقاط NET_RAW، ويظهر ذلك على شكل
EAI_AGAIN أثناء الأوامر المدعومة بـ npm مثل openclaw plugins install.
أبقِ ملف compose الافتراضي المشدّد لعملية Gateway العادية. يعمل
التجاوز المحلي أدناه على تخفيف وضع أمان حاوية CLI عبر
استعادة الإمكانات الافتراضية لـ Docker، لذلك استخدمه فقط لأمر CLI
لمرة واحدة يحتاج إلى الوصول إلى سجل الحِزم، وليس كاستدعاء Compose
الافتراضي لديك:
printf '%s\n' \ 'services:' \ ' openclaw-cli:' \ ' cap_drop: !reset []' \ > docker-compose.cli-no-dropped-caps.local.yml docker compose -f docker-compose.yml -f docker-compose.cli-no-dropped-caps.local.yml run --rm openclaw-cli plugins install <package>إذا كنت قد أنشأت بالفعل حاوية openclaw-cli طويلة التشغيل، فأعد إنشاءها
باستخدام التجاوز نفسه. لا يستطيع docker compose exec ولا docker exec
تغيير إمكانات Linux على حاوية أُنشئت مسبقًا.
الأذونات وEACCES
تعمل الصورة باسم node (uid 1000). إذا رأيت أخطاء أذونات على
/home/node/.openclaw، فتأكد من أن عمليات bind mount على المضيف مملوكة لـ uid 1000:
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspaceيمكن أن يظهر عدم التطابق نفسه كتحذير Plugin مثل
blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)
متبوعًا بـ plugin present but blocked. يعني ذلك أن uid العملية ومالك
دليل Plugin المركّب غير متفقين. يُفضّل تشغيل الحاوية بالـ
uid 1000 الافتراضي وإصلاح ملكية bind mount. لا تستخدم chown
على /path/to/openclaw-config/npm إلى root:root إلا إذا كنت تشغّل
OpenClaw كـ root عمدًا على المدى الطويل.
إعادة بناء أسرع
رتّب Dockerfile بحيث تُخزّن طبقات التبعيات مؤقتًا. هذا يتجنب إعادة تشغيل
pnpm install ما لم تتغير ملفات القفل:
FROM node:24-bookwormRUN curl -fsSL https://bun.sh/install | bashENV PATH="/root/.bun/bin:${PATH}"RUN corepack enableWORKDIR /appCOPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./COPY ui/package.json ./ui/package.jsonCOPY scripts ./scriptsRUN pnpm install --frozen-lockfileCOPY . .RUN pnpm buildRUN pnpm ui:installRUN pnpm ui:buildENV NODE_ENV=productionCMD ["node","dist/index.js"]خيارات الحاوية للمستخدمين المتقدمين
الصورة الافتراضية تركّز على الأمان أولًا وتعمل كمستخدم node غير root. للحصول على
حاوية أكثر اكتمالًا بالميزات:
- استمرارية
/home/node:export OPENCLAW_HOME_VOLUME="openclaw_home" - تضمين تبعيات النظام:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - تضمين Playwright Chromium:
export OPENCLAW_INSTALL_BROWSER=1 - أو تثبيت متصفحات Playwright في مجلد مستمر:
bash docker compose run --rm openclaw-cli \ node /app/node_modules/playwright-core/cli.js install chromium - استمرارية تنزيلات المتصفح: استخدم
OPENCLAW_HOME_VOLUMEأوOPENCLAW_EXTRA_MOUNTS. يكتشف OpenClaw تلقائيًا Chromium المُدار بواسطة Playwright في صورة Docker على Linux.
OpenAI Codex OAuth (Docker دون واجهة)
إذا اخترت OpenAI Codex OAuth في المعالج، فسيفتح URL في المتصفح. في Docker أو الإعدادات دون واجهة، انسخ URL إعادة التوجيه الكامل الذي تصل إليه والصقه مرة أخرى في المعالج لإكمال المصادقة.
بيانات تعريف الصورة الأساسية
تستخدم صورة وقت تشغيل Docker الرئيسية node:24-bookworm-slim وتتضمن tini كعملية init لنقطة الدخول (PID 1) لضمان حصاد العمليات الزومبي والتعامل مع الإشارات بشكل صحيح في الحاويات طويلة التشغيل. تنشر تعليقات توضيحية لصورة OCI الأساسية تشمل org.opencontainers.image.base.name,
وorg.opencontainers.image.source، وغيرها. يتم
تحديث ملخص قاعدة Node عبر PRs صور Docker الأساسية في Dependabot؛ لا تشغّل إصدارات النشر
طبقة ترقية للتوزيعة. راجع
تعليقات صور OCI التوضيحية.
هل تشغّل على VPS؟
راجع Hetzner (Docker VPS) و وقت تشغيل Docker VM لخطوات نشر VM المشتركة بما في ذلك تضمين الثنائيات، والاستمرارية، والتحديثات.
وضع حماية الوكيل
عند تفعيل agents.defaults.sandbox مع خلفية Docker، يشغّل Gateway
تنفيذ أدوات الوكيل (shell، وقراءة/كتابة الملفات، وما إلى ذلك) داخل حاويات Docker
معزولة بينما يبقى Gateway نفسه على المضيف. يمنحك هذا حاجزًا صارمًا
حول جلسات الوكلاء غير الموثوقة أو متعددة المستأجرين دون وضع Gateway بالكامل
داخل حاوية.
يمكن أن يكون نطاق وضع الحماية لكل وكيل (افتراضيًا)، أو لكل جلسة، أو مشتركًا. يحصل كل نطاق
على مساحة عمل خاصة به مركّبة عند /workspace. يمكنك أيضًا تكوين
سياسات السماح/المنع للأدوات، وعزل الشبكة، وحدود الموارد، وحاويات المتصفح.
للاطلاع على التكوين الكامل، والصور، وملاحظات الأمان، وملفات تعريف الوكلاء المتعددة، راجع:
- وضع الحماية -- مرجع وضع الحماية الكامل
- OpenShell -- وصول shell تفاعلي إلى حاويات وضع الحماية
- وضع حماية وأدوات الوكلاء المتعددين -- تجاوزات لكل وكيل
تفعيل سريع
{ agents: { defaults: { sandbox: { mode: "non-main", // off | non-main | all scope: "agent", // session | agent | shared }, }, },}ابنِ صورة وضع الحماية الافتراضية (من نسخة مصدر):
scripts/sandbox-setup.shلتثبيتات npm دون نسخة مصدر، راجع وضع الحماية § الصور والإعداد لأوامر docker build المضمّنة.
استكشاف الأخطاء وإصلاحها
الصورة مفقودة أو حاوية وضع الحماية لا تبدأ
ابنِ صورة وضع الحماية باستخدام
scripts/sandbox-setup.sh
(نسخة مصدر) أو أمر docker build المضمّن من وضع الحماية § الصور والإعداد (تثبيت npm)،
أو اضبط agents.defaults.sandbox.docker.image على صورتك المخصصة.
تُنشأ الحاويات تلقائيًا لكل جلسة عند الطلب.
أخطاء الأذونات في وضع الحماية
اضبط docker.user على UID:GID يطابق ملكية مساحة العمل المركّبة لديك،
أو غيّر ملكية مجلد مساحة العمل باستخدام chown.
الأدوات المخصصة غير موجودة في وضع الحماية
يشغّل OpenClaw الأوامر باستخدام sh -lc (login shell)، والذي يقرأ
/etc/profile وقد يعيد ضبط PATH. اضبط docker.env.PATH لإضافة مسارات
أدواتك المخصصة في المقدمة، أو أضف سكربتًا ضمن /etc/profile.d/ في Dockerfile.
تم إنهاء بناء الصورة بسبب نفاد الذاكرة (الخروج 137)
تحتاج VM إلى ذاكرة RAM لا تقل عن 2 GB. استخدم فئة آلة أكبر وأعد المحاولة.
غير مصرّح أو الاقتران مطلوب في واجهة التحكم
اجلب رابط لوحة تحكم جديدًا ووافق على جهاز المتصفح:
docker compose run --rm openclaw-cli dashboard --no-opendocker compose run --rm openclaw-cli devices listdocker compose run --rm openclaw-cli devices approve <requestId>مزيد من التفاصيل: لوحة التحكم، الأجهزة.
هدف Gateway يعرض ws://172.x.x.x أو أخطاء اقتران من Docker CLI
أعد ضبط وضع Gateway والربط:
docker compose run --rm openclaw-cli config set --batch-json '[{"path":"gateway.mode","value":"local"},{"path":"gateway.bind","value":"lan"}]'docker compose run --rm openclaw-cli devices list --url ws://127.0.0.1:18789ذو صلة
- نظرة عامة على التثبيت — كل طرق التثبيت
- Podman — بديل Podman لـ Docker
- ClawDock — إعداد Docker Compose من المجتمع
- التحديث — إبقاء OpenClaw محدّثًا
- التكوين — تكوين Gateway بعد التثبيت