Hosting
Середовище виконання віртуальної машини Docker
Спільні кроки налаштування середовища виконання для встановлень Docker на основі віртуальних машин, як-от GCP, Hetzner та подібні постачальники VPS.
Вбудуйте необхідні виконувані файли в образ
Установлення виконуваних файлів у запущеному контейнері — хибний підхід: усе встановлене під час виконання втрачається після перезапуску. Вбудовуйте кожен зовнішній виконуваний файл, потрібний Skills, в образ під час його збирання.
Наведені нижче приклади охоплюють лише три виконувані файли в алфавітному порядку:
gog(зgogcli) для доступу до Gmailgoplacesдля Google Placeswacliдля WhatsApp
Це лише приклади, а не повний список. Установлюйте за цим самим шаблоном стільки виконуваних файлів, скільки потрібно вашим Skills. Коли згодом ви додасте 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 (gogcli — installs as `gog`)# Copy the current Linux asset URL from 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 # Example binary 2: Google Places CLI# Copy the current Linux asset URL from 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 # Example binary 3: WhatsApp CLI# Copy the current Linux asset URL from 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 # Add more binaries below using the same pattern 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, віртуальній машині бракує пам’яті. Перш ніж повторити спробу, виберіть потужніший клас машини.
Перевірте виконувані файли:
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Відповідь 200 від /healthz підтверджує, що процес 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 |
| Конфігурації Skills | /home/node/.openclaw/skills/ |
Монтування тому хоста | Стан на рівні Skills |
| Робочий простір агента | /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 | Перебудовується під час кожного збирання образу |
| Пакети ОС | Файлова система контейнера | Образ Docker | Не встановлюйте під час виконання |
| Контейнер Docker | Тимчасовий | Перезапускний | Можна безпечно видаляти |
Оновлення
Щоб оновити OpenClaw на віртуальній машині:
git pulldocker compose builddocker compose up -d