Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

ขั้นตอน runtime ที่ใช้ร่วมกันสำหรับการติดตั้ง Docker บน VM เช่น GCP, Hetzner และผู้ให้บริการ VPS ที่คล้ายกัน

ใส่ไบนารีที่จำเป็นไว้ในอิมเมจ

การติดตั้งไบนารีภายในคอนเทนเนอร์ที่กำลังทำงานอยู่เป็นกับดัก สิ่งใดก็ตามที่ติดตั้งตอน runtime จะหายไปเมื่อรีสตาร์ท ไบนารีภายนอกทั้งหมดที่ Skills ต้องใช้ต้องติดตั้งในช่วงสร้างอิมเมจ ตัวอย่างด้านล่างแสดงไบนารีทั่วไปเพียงสามรายการ:
  • gog (จาก gogcli) สำหรับการเข้าถึง Gmail
  • goplaces สำหรับ Google Places
  • wacli สำหรับ WhatsApp
สิ่งเหล่านี้เป็นตัวอย่าง ไม่ใช่รายการที่ครบถ้วน คุณสามารถติดตั้งไบนารีได้มากเท่าที่ต้องการโดยใช้รูปแบบเดียวกัน หากคุณเพิ่ม Skills ใหม่ในภายหลังที่ต้องพึ่งพาไบนารีเพิ่มเติม คุณต้อง:
  1. อัปเดต Dockerfile
  2. สร้างอิมเมจใหม่
  3. รีสตาร์ทคอนเทนเนอร์
ตัวอย่าง Dockerfile
FROM node:24-bookworm

RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*

# Example binary 1: Gmail CLI (gogcli — installs as `gog`)
# Copy the current Linux asset URL from 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

# Example binary 2: Google Places CLI
# Copy the current Linux asset URL from 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

# Example binary 3: WhatsApp CLI
# Copy the current Linux asset URL from 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

# Add more binaries below using the same pattern

WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
COPY ui/package.json ./ui/package.json
COPY scripts ./scripts

RUN corepack enable
RUN pnpm install --frozen-lockfile

COPY . .
RUN pnpm build
RUN pnpm ui:install
RUN pnpm ui:build

ENV NODE_ENV=production

CMD ["node","dist/index.js"]
URL ด้านบนเป็นตัวอย่าง สำหรับ VM ที่ใช้ ARM ให้เลือก asset arm64 สำหรับ build ที่ทำซ้ำได้ ให้ตรึง URL ของ release ที่ระบุเวอร์ชัน

สร้างและเปิดใช้งาน

docker compose build
docker compose up -d openclaw-gateway
หาก build ล้มเหลวด้วย Killed หรือ exit code 137 ระหว่าง pnpm install --frozen-lockfile แสดงว่า VM หน่วยความจำไม่พอ ให้ใช้คลาสเครื่องที่ใหญ่ขึ้นก่อนลองใหม่ ตรวจสอบไบนารี:
docker compose exec openclaw-gateway which gog
docker compose exec openclaw-gateway which goplaces
docker compose exec openclaw-gateway which wacli
ผลลัพธ์ที่คาดหวัง:
/usr/local/bin/gog
/usr/local/bin/goplaces
/usr/local/bin/wacli
ตรวจสอบ Gateway:
docker compose logs -f openclaw-gateway
ผลลัพธ์ที่คาดหวัง:
[gateway] listening on ws://0.0.0.0:18789

สิ่งใดคงอยู่ที่ใด

OpenClaw ทำงานใน Docker แต่ Docker ไม่ใช่แหล่งข้อมูลหลัก สถานะที่มีอายุยาวทั้งหมดต้องอยู่รอดหลังการรีสตาร์ท การ rebuild และการ reboot
ส่วนประกอบตำแหน่งกลไกการคงอยู่หมายเหตุ
การกำหนดค่า Gateway/home/node/.openclaw/การ mount volume จากโฮสต์รวม openclaw.json, .env
โปรไฟล์การยืนยันตัวตนของโมเดล/home/node/.openclaw/agents/การ mount volume จากโฮสต์agents/<agentId>/agent/auth-profiles.json (OAuth, API keys)
คีย์โปรไฟล์การยืนยันตัวตน/home/node/.config/openclaw/การ mount volume จากโฮสต์คีย์เข้ารหัสภายในเครื่องสำหรับวัสดุ token ของโปรไฟล์การยืนยันตัวตน OAuth
การกำหนดค่า Skills/home/node/.openclaw/skills/การ mount volume จากโฮสต์สถานะระดับ Skill
พื้นที่ทำงานของเอเจนต์/home/node/.openclaw/workspace/การ mount volume จากโฮสต์โค้ดและ artifact ของเอเจนต์
เซสชัน WhatsApp/home/node/.openclaw/การ mount volume จากโฮสต์เก็บรักษาการเข้าสู่ระบบด้วย QR
keyring ของ Gmail/home/node/.openclaw/volume ของโฮสต์ + รหัสผ่านต้องใช้ GOG_KEYRING_PASSWORD
แพ็กเกจ Plugin/home/node/.openclaw/npm, /home/node/.openclaw/gitการ mount volume จากโฮสต์รากของแพ็กเกจ Plugin ที่ดาวน์โหลดได้
ไบนารีภายนอก/usr/local/bin/อิมเมจ Dockerต้องใส่ไว้ในช่วง build
runtime ของ Nodeระบบไฟล์ของคอนเทนเนอร์อิมเมจ Dockerสร้างใหม่ทุกครั้งที่ build อิมเมจ
แพ็กเกจ OSระบบไฟล์ของคอนเทนเนอร์อิมเมจ Dockerอย่าติดตั้งตอน runtime
คอนเทนเนอร์ Dockerชั่วคราวรีสตาร์ทได้ลบทิ้งได้อย่างปลอดภัย

การอัปเดต

หากต้องการอัปเดต OpenClaw บน VM:
git pull
docker compose build
docker compose up -d

ที่เกี่ยวข้อง