docs/docs/uk/install/docker-vm-runtime.md
2026-04-05 18:22:18 +00:00

7.0 KiB
Raw Blame History

read_when summary title x-i18n
Ви розгортаєте OpenClaw на хмарній VM із Docker
Вам потрібен спільний сценарій вбудовування бінарних файлів, збереження стану та оновлення
Спільні кроки runtime Docker VM для довготривалих хостів OpenClaw Gateway Docker VM Runtime
generated_at model provider source_hash source_path workflow
2026-04-05T18:06:47Z gpt-5.4 openai 854403a48fe15a88cc9befb9bebe657f1a7c83f1df2ebe2346fac9a6e4b16992 install/docker-vm-runtime.md 15

Docker VM Runtime

Спільні кроки runtime для Docker-установок на VM, таких як GCP, Hetzner та подібні VPS-провайдери.

Вбудуйте потрібні бінарні файли в образ

Установлювати бінарні файли всередині вже запущеного контейнера — це пастка. Усе, що встановлено під час runtime, буде втрачено після перезапуску.

Усі зовнішні бінарні файли, потрібні Skills, мають бути встановлені під час збирання образу.

Наведені нижче приклади показують лише три поширені бінарні файли:

  • gog для доступу до 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
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