Hosting
Docker VM रनटाइम
GCP, Hetzner और इसी तरह के VPS प्रदाताओं जैसे VM-आधारित Docker इंस्टॉलेशन के लिए साझा रनटाइम चरण।
आवश्यक बाइनरी को इमेज में शामिल करें
चल रहे कंटेनर के अंदर बाइनरी इंस्टॉल करना एक जाल है: रनटाइम पर इंस्टॉल की गई हर चीज़ रीस्टार्ट होने पर खो जाती है। किसी skill के लिए आवश्यक प्रत्येक बाहरी बाइनरी को बिल्ड के समय इमेज में शामिल करें।
नीचे दिए गए उदाहरण वर्णमाला क्रम में केवल तीन बाइनरी को कवर करते हैं:
gog(जोgogcliसे मिलता है) Gmail एक्सेस के लिएgoplacesGoogle Places के लिएwacliWhatsApp के लिए
ये उदाहरण हैं, पूरी सूची नहीं। इसी पैटर्न का उपयोग करके अपनी Skills के लिए आवश्यक सभी बाइनरी इंस्टॉल करें। जब आप बाद में कोई ऐसी skill जोड़ें जिसे नई बाइनरी की आवश्यकता हो:
- Dockerfile अपडेट करें।
- इमेज फिर से बिल्ड करें।
- कंटेनर रीस्टार्ट करें।
Dockerfile का उदाहरण
FROM node:24-bookworm RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/* # उदाहरण बाइनरी 1: Gmail CLI (gogcli — `gog` के रूप में इंस्टॉल होती है)# वर्तमान Linux एसेट URL को https://github.com/steipete/gogcli/releases से कॉपी करेंRUN curl -L https://github.com/steipete/gogcli/releases/latest/download/gogcli_linux_amd64.tar.gz \ | tar -xzO gog > /usr/local/bin/gog; \ chmod +x /usr/local/bin/gog # उदाहरण बाइनरी 2: Google Places CLI# वर्तमान Linux एसेट URL को https://github.com/steipete/goplaces/releases से कॉपी करेंRUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_linux_amd64.tar.gz \ | tar -xzO goplaces > /usr/local/bin/goplaces; \ chmod +x /usr/local/bin/goplaces # उदाहरण बाइनरी 3: WhatsApp CLI# वर्तमान Linux एसेट URL को https://github.com/steipete/wacli/releases से कॉपी करेंRUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli-linux-amd64.tar.gz \ | tar -xzO wacli > /usr/local/bin/wacli; \ chmod +x /usr/local/bin/wacli # इसी पैटर्न का उपयोग करके नीचे और बाइनरी जोड़ें WORKDIR /appCOPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./COPY ui/package.json ./ui/package.jsonCOPY scripts ./scripts RUN corepack enableRUN pnpm install --frozen-lockfile COPY . .RUN pnpm buildRUN pnpm ui:installRUN pnpm ui:build ENV NODE_ENV=production CMD ["node","dist/index.js"]बिल्ड करें और लॉन्च करें
docker compose builddocker compose up -d openclaw-gatewayयदि pnpm install --frozen-lockfile के दौरान बिल्ड Killed या निकास कोड 137 के साथ विफल होता है, तो VM में मेमोरी समाप्त हो गई है। दोबारा प्रयास करने से पहले अधिक बड़ी मशीन श्रेणी का उपयोग करें।
बाइनरी सत्यापित करें:
docker compose exec openclaw-gateway which gogdocker compose exec openclaw-gateway which goplacesdocker compose exec openclaw-gateway which wacliअपेक्षित आउटपुट:
/usr/local/bin/gog/usr/local/bin/goplaces/usr/local/bin/wacliसत्यापित करें कि Gateway चालू है:
docker compose logs -f openclaw-gatewaycurl -fsS http://127.0.0.1:18789/healthz/healthz से 200 प्रतिक्रिया मिलना पुष्टि करता है कि Gateway प्रक्रिया अनुरोध सुन रही है और स्वस्थ है; अंतर्निहित इमेज HEALTHCHECK भी इसी एंडपॉइंट को पोल करता है।
क्या कहाँ बना रहता है
OpenClaw Docker में चलता है, लेकिन Docker सत्य का स्रोत नहीं है। सभी दीर्घकालिक स्थिति को रीस्टार्ट, रीबिल्ड और रीबूट के बाद भी बने रहना चाहिए।
| घटक | स्थान | स्थायित्व तंत्र | टिप्पणियाँ |
|---|---|---|---|
| Gateway कॉन्फ़िगरेशन | /home/node/.openclaw/ |
होस्ट वॉल्यूम माउंट | इसमें openclaw.json शामिल है |
| चैनल/प्रदाता क्रेडेंशियल | /home/node/.openclaw/credentials/ |
होस्ट वॉल्यूम माउंट | चैनल और प्रदाता की क्रेडेंशियल सामग्री |
| मॉडल प्रमाणीकरण प्रोफ़ाइल | /home/node/.openclaw/agents/ |
होस्ट वॉल्यूम माउंट | agents/<agentId>/agent/auth-profiles.json (OAuth, API कुंजियाँ) |
| लेगेसी OAuth कुंजी फ़ाइल | /home/node/.config/openclaw/ |
होस्ट वॉल्यूम माउंट | माइग्रेशन से पहले के OAuth साइडकार के लिए केवल-पठन संगतता; openclaw doctor --fix इन्हें auth-profiles.json में माइग्रेट करता है |
| Skill कॉन्फ़िगरेशन | /home/node/.openclaw/skills/ |
होस्ट वॉल्यूम माउंट | Skill-स्तरीय स्थिति |
| एजेंट कार्यक्षेत्र | /home/node/.openclaw/workspace/ |
होस्ट वॉल्यूम माउंट | कोड और एजेंट आर्टिफ़ैक्ट |
| WhatsApp सत्र | /home/node/.openclaw/ |
होस्ट वॉल्यूम माउंट | QR लॉगिन सुरक्षित रखता है |
| Gmail कीरिंग | /home/node/.openclaw/ |
होस्ट वॉल्यूम + पासवर्ड | GOG_KEYRING_PASSWORD आवश्यक है |
| Plugin पैकेज | /home/node/.openclaw/npm, /home/node/.openclaw/git |
होस्ट वॉल्यूम माउंट | डाउनलोड किए जा सकने वाले Plugin पैकेज रूट |
| बाहरी बाइनरी | /usr/local/bin/ |
Docker इमेज | बिल्ड के समय शामिल करना आवश्यक है |
| Node रनटाइम | कंटेनर फ़ाइल सिस्टम | Docker इमेज | प्रत्येक इमेज बिल्ड में फिर से बनाया जाता है |
| OS पैकेज | कंटेनर फ़ाइल सिस्टम | Docker इमेज | रनटाइम पर इंस्टॉल न करें |
| Docker कंटेनर | अस्थायी | रीस्टार्ट करने योग्य | नष्ट करना सुरक्षित है |
अपडेट
VM पर OpenClaw अपडेट करने के लिए:
git pulldocker compose builddocker compose up -d