Hosting

Môi trường chạy máy ảo Docker

Các bước runtime dùng chung cho những bản cài đặt Docker trên máy ảo như GCP, Hetzner và các nhà cung cấp VPS tương tự.

Tích hợp các tệp nhị phân bắt buộc vào image

Cài đặt tệp nhị phân bên trong container đang chạy là một cái bẫy: mọi thứ được cài đặt trong lúc chạy sẽ bị mất khi khởi động lại. Hãy tích hợp mọi tệp nhị phân bên ngoài mà một skill cần vào image tại thời điểm dựng.

Các ví dụ dưới đây chỉ đề cập đến ba tệp nhị phân, theo thứ tự bảng chữ cái:

  • gog (từ gogcli) để truy cập Gmail
  • goplaces cho Google Places
  • wacli cho WhatsApp

Đây là các ví dụ, không phải danh sách đầy đủ. Hãy cài đặt tất cả tệp nhị phân mà các skill của bạn cần theo cùng một mẫu. Sau này, khi thêm một skill cần tệp nhị phân mới:

  1. Cập nhật Dockerfile.
  2. Dựng lại image.
  3. Khởi động lại các container.

Dockerfile mẫu

dockerfile
FROM node:24-bookworm RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/* # Tệp nhị phân mẫu 1: Gmail CLI (gogcli — được cài đặt dưới tên `gog`)# Sao chép URL tài nguyên Linux hiện tại từ https://github.com/steipete/gogcli/releasesRUN 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 # Tệp nhị phân mẫu 2: Google Places CLI# Sao chép URL tài nguyên Linux hiện tại từ https://github.com/steipete/goplaces/releasesRUN 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 # Tệp nhị phân mẫu 3: WhatsApp CLI# Sao chép URL tài nguyên Linux hiện tại từ https://github.com/steipete/wacli/releasesRUN 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 # Thêm các tệp nhị phân khác bên dưới theo cùng một mẫu 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"]

Dựng và khởi chạy

bash
docker compose builddocker compose up -d openclaw-gateway

Nếu quá trình dựng thất bại với Killed hoặc mã thoát 137 trong lúc chạy pnpm install --frozen-lockfile, máy ảo đã hết bộ nhớ. Hãy sử dụng loại máy lớn hơn trước khi thử lại.

Xác minh các tệp nhị phân:

bash
docker compose exec openclaw-gateway which gogdocker compose exec openclaw-gateway which goplacesdocker compose exec openclaw-gateway which wacli

Đầu ra dự kiến:

text
/usr/local/bin/gog/usr/local/bin/goplaces/usr/local/bin/wacli

Xác minh Gateway đang hoạt động:

bash
docker compose logs -f openclaw-gatewaycurl -fsS http://127.0.0.1:18789/healthz

Việc /healthz trả về phản hồi 200 xác nhận tiến trình Gateway đang lắng nghe và hoạt động bình thường; HEALTHCHECK tích hợp sẵn trong image sẽ thăm dò cùng endpoint này.

Thành phần nào được duy trì ở đâu

OpenClaw chạy trong Docker, nhưng Docker không phải là nguồn dữ liệu chính xác. Mọi trạng thái dài hạn đều phải tồn tại qua các lần khởi động lại, dựng lại và khởi động lại hệ thống.

Thành phần Vị trí Cơ chế duy trì Ghi chú
Cấu hình Gateway /home/node/.openclaw/ Gắn volume từ máy chủ Bao gồm openclaw.json
Thông tin xác thực kênh/nhà cung cấp /home/node/.openclaw/credentials/ Gắn volume từ máy chủ Dữ liệu thông tin xác thực của kênh và nhà cung cấp
Hồ sơ xác thực mô hình /home/node/.openclaw/agents/ Gắn volume từ máy chủ agents/<agentId>/agent/auth-profiles.json (OAuth, khóa API)
Tệp khóa OAuth cũ /home/node/.config/openclaw/ Gắn volume từ máy chủ Khả năng tương thích chỉ đọc cho các tệp phụ OAuth trước khi di chuyển; openclaw doctor --fix di chuyển chúng vào auth-profiles.json
Cấu hình skill /home/node/.openclaw/skills/ Gắn volume từ máy chủ Trạng thái cấp skill
Không gian làm việc của tác tử /home/node/.openclaw/workspace/ Gắn volume từ máy chủ Mã và sản phẩm tạo tác của tác tử
Phiên WhatsApp /home/node/.openclaw/ Gắn volume từ máy chủ Duy trì trạng thái đăng nhập bằng mã QR
Kho khóa Gmail /home/node/.openclaw/ Volume máy chủ + mật khẩu Yêu cầu GOG_KEYRING_PASSWORD
Các gói Plugin /home/node/.openclaw/npm, /home/node/.openclaw/git Gắn volume từ máy chủ Thư mục gốc của các gói Plugin có thể tải xuống
Các tệp nhị phân bên ngoài /usr/local/bin/ Image Docker Phải được tích hợp tại thời điểm dựng
Runtime Node Hệ thống tệp của container Image Docker Được dựng lại mỗi khi dựng image
Các gói hệ điều hành Hệ thống tệp của container Image Docker Không cài đặt trong lúc chạy
Container Docker Tạm thời Có thể khởi động lại Có thể hủy bỏ an toàn

Cập nhật

Để cập nhật OpenClaw trên máy ảo:

bash
git pulldocker compose builddocker compose up -d

Liên quan

Was this useful?
On this page

On this page