Ana içeriğe atla

Docker VM Runtime

GCP, Hetzner ve benzeri VPS sağlayıcıları gibi VM tabanlı Docker kurulumları için paylaşılan çalışma zamanı adımları.

Gerekli ikili dosyaları imajın içine bake edin

Çalışan bir kapsayıcı içine ikili dosya kurmak bir tuzaktır. Çalışma zamanında kurulan her şey yeniden başlatmada kaybolur. Skills için gereken tüm harici ikili dosyalar imaj oluşturma zamanında kurulmalıdır. Aşağıdaki örnekler yalnızca üç yaygın ikili dosyayı gösterir:
  • Gmail erişimi için gog
  • Google Places için goplaces
  • WhatsApp için wacli
Bunlar örnektir, tam bir liste değildir. Aynı kalıbı kullanarak gerektiği kadar çok ikili dosya kurabilirsiniz. Daha sonra ek ikili dosyalara bağımlı yeni Skills eklerseniz şunları yapmanız gerekir:
  1. Dockerfile’ı güncelleyin
  2. İmajı yeniden oluşturun
  3. Kapsayıcıları yeniden başlatın
Örnek Dockerfile
FROM node:24-bookworm

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

# Örnek ikili 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

# Örnek ikili 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

# Örnek ikili 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

# Aynı kalıbı kullanarak aşağıya daha fazla ikili dosya ekleyin

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"]
Yukarıdaki indirme URL’leri x86_64 (amd64) içindir. ARM tabanlı VM’ler için (ör. Hetzner ARM, GCP Tau T2A), indirme URL’lerini her aracın sürüm sayfasındaki uygun ARM64 varyantlarıyla değiştirin.

Oluşturma ve başlatma

docker compose build
docker compose up -d openclaw-gateway
Oluşturma sırasında pnpm install --frozen-lockfile adımında Killed veya exit code 137 ile başarısız olursa, VM belleği yetersizdir. Tekrar denemeden önce daha büyük bir makine sınıfı kullanın. İkili dosyaları doğrulayın:
docker compose exec openclaw-gateway which gog
docker compose exec openclaw-gateway which goplaces
docker compose exec openclaw-gateway which wacli
Beklenen çıktı:
/usr/local/bin/gog
/usr/local/bin/goplaces
/usr/local/bin/wacli
Gateway’i doğrulayın:
docker compose logs -f openclaw-gateway
Beklenen çıktı:
[gateway] listening on ws://0.0.0.0:18789

Neler nerede kalıcı olur

OpenClaw Docker içinde çalışır, ancak Docker doğruluğun kaynağı değildir. Tüm uzun ömürlü durum yeniden başlatmalara, yeniden oluşturmaya ve yeniden açılışlara dayanmalıdır.
BileşenKonumKalıcılık mekanizmasıNotlar
Gateway yapılandırması/home/node/.openclaw/Host volume mountopenclaw.json, .env içerir
Model kimlik doğrulama profilleri/home/node/.openclaw/agents/Host volume mountagents/<agentId>/agent/auth-profiles.json (OAuth, API anahtarları)
Skill yapılandırmaları/home/node/.openclaw/skills/Host volume mountSkill düzeyinde durum
Ajan çalışma alanı/home/node/.openclaw/workspace/Host volume mountKod ve ajan artefaktları
WhatsApp oturumu/home/node/.openclaw/Host volume mountQR girişini korur
Gmail keyring/home/node/.openclaw/Host volume + parolaGOG_KEYRING_PASSWORD gerektirir
Harici ikili dosyalar/usr/local/bin/Docker imageOluşturma zamanında bake edilmelidir
Node çalışma zamanıContainer filesystemDocker imageHer imaj oluşturmasında yeniden oluşturulur
İşletim sistemi paketleriContainer filesystemDocker imageÇalışma zamanında kurmayın
Docker kapsayıcısıGeçiciYeniden başlatılabilirYok etmek güvenlidir

Güncellemeler

VM üzerinde OpenClaw’ı güncellemek için:
git pull
docker compose build
docker compose up -d