7.0 KiB
| read_when | summary | title | x-i18n | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Спільні кроки runtime Docker VM для довготривалих хостів OpenClaw Gateway | Docker VM Runtime |
|
Docker VM Runtime
Спільні кроки runtime для Docker-установок на VM, таких як GCP, Hetzner та подібні VPS-провайдери.
Вбудуйте потрібні бінарні файли в образ
Установлювати бінарні файли всередині вже запущеного контейнера — це пастка. Усе, що встановлено під час runtime, буде втрачено після перезапуску.
Усі зовнішні бінарні файли, потрібні Skills, мають бути встановлені під час збирання образу.
Наведені нижче приклади показують лише три поширені бінарні файли:
gogдля доступу до Gmailgoplacesдля Google Placeswacliдля WhatsApp
Це приклади, а не повний список. Ви можете встановити стільки бінарних файлів, скільки потрібно, використовуючи той самий шаблон.
Якщо пізніше ви додасте нові Skills, які залежать від додаткових бінарних файлів, вам потрібно:
- Оновити Dockerfile
- Перебудувати образ
- Перезапустити контейнери
Приклад 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
RUN curl -L https://github.com/steipete/gog/releases/latest/download/gog_Linux_x86_64.tar.gz \
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/gog
# Example binary 2: Google Places CLI
RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_Linux_x86_64.tar.gz \
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/goplaces
# Example binary 3: WhatsApp CLI
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli_Linux_x86_64.tar.gz \
| tar -xz -C /usr/local/bin && 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 завантаження призначені для x86_64 (amd64). Для VM на базі ARM (наприклад, Hetzner ARM, GCP Tau T2A) замініть URL завантаження на відповідні варіанти ARM64 зі сторінки випусків кожного інструмента.
Збирання і запуск
docker compose build
docker compose up -d openclaw-gateway
Якщо збирання завершується помилкою 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 не є джерелом істини. Увесь довготривалий стан має переживати перезапуски, перебудови та перезавантаження.
| Компонент | Розташування | Механізм збереження | Примітки |
|---|---|---|---|
| Конфігурація Gateway | /home/node/.openclaw/ |
Монтування host volume | Містить openclaw.json, .env |
| Профілі автентифікації моделей | /home/node/.openclaw/agents/ |
Монтування host volume | agents/<agentId>/agent/auth-profiles.json (OAuth, API-ключі) |
| Конфігурації Skills | /home/node/.openclaw/skills/ |
Монтування host volume | Стан на рівні Skill |
| Робочий простір агента | /home/node/.openclaw/workspace/ |
Монтування host volume | Код і артефакти агента |
| Сесія WhatsApp | /home/node/.openclaw/ |
Монтування host volume | Зберігає QR-вхід |
| Gmail keyring | /home/node/.openclaw/ |
Host volume + пароль | Потребує GOG_KEYRING_PASSWORD |
| Зовнішні бінарні файли | /usr/local/bin/ |
Docker image | Мають бути вбудовані під час збирання |
| Node runtime | Файлова система контейнера | Docker image | Перебудовується під час кожного збирання образу |
| OS-пакети | Файлова система контейнера | Docker image | Не встановлюйте під час runtime |
| Docker-контейнер | Ефемерний | Можна перезапускати | Його безпечно знищувати |
Оновлення
Щоб оновити OpenClaw на VM:
git pull
docker compose build
docker compose up -d