Hosting
Docker sanal makine çalışma zamanı
GCP, Hetzner ve benzeri VPS sağlayıcılarındaki VM tabanlı Docker kurulumları için ortak çalışma zamanı adımları.
Gerekli ikili dosyaları imaja dahil etme
Çalışan bir konteynerin içine ikili dosya yüklemek sorun yaratır: çalışma zamanında yüklenen her şey yeniden başlatma sırasında kaybolur. Bir skill'in ihtiyaç duyduğu tüm harici ikili dosyaları derleme sırasında imaja dahil edin.
Aşağıdaki örnekler alfabetik sırayla yalnızca üç ikili dosyayı kapsar:
- Gmail erişimi için
gog(gogclipaketinden) - Google Places için
goplaces - WhatsApp için
wacli
Bunlar yalnızca örnektir, eksiksiz bir liste değildir. Skills'inizin ihtiyaç duyduğu tüm ikili dosyaları aynı kalıbı kullanarak yükleyin. Daha sonra yeni bir ikili dosyaya ihtiyaç duyan bir skill eklediğinizde:
- Dockerfile'ı güncelleyin.
- İmajı yeniden derleyin.
- Konteynerleri 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 dosya 1: Gmail CLI (gogcli — `gog` olarak yüklenir)# Güncel Linux varlığı URL'sini https://github.com/steipete/gogcli/releases adresinden kopyalayınRUN 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 # Örnek ikili dosya 2: Google Places CLI# Güncel Linux varlığı URL'sini https://github.com/steipete/goplaces/releases adresinden kopyalayınRUN 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 # Örnek ikili dosya 3: WhatsApp CLI# Güncel Linux varlığı URL'sini https://github.com/steipete/wacli/releases adresinden kopyalayınRUN 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 # Aynı kalıbı kullanarak aşağıya daha fazla ikili dosya ekleyin 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"]Derleme ve başlatma
docker compose builddocker compose up -d openclaw-gatewayDerleme, pnpm install --frozen-lockfile sırasında Killed ile veya 137 çıkış koduyla başarısız olursa VM'nin belleği tükenmiştir. Yeniden denemeden önce daha büyük bir makine sınıfı kullanın.
İkili dosyaları doğrulayın:
docker compose exec openclaw-gateway which gogdocker compose exec openclaw-gateway which goplacesdocker compose exec openclaw-gateway which wacliBeklenen çıktı:
/usr/local/bin/gog/usr/local/bin/goplaces/usr/local/bin/wacliGateway'in çalıştığını doğrulayın:
docker compose logs -f openclaw-gatewaycurl -fsS http://127.0.0.1:18789/healthz/healthz uç noktasının 200 yanıtı döndürmesi, Gateway işleminin bağlantıları dinlediğini ve sağlıklı olduğunu doğrular; imajın yerleşik HEALTHCHECK denetimi de aynı uç noktayı düzenli olarak yoklar.
Nelerin nerede kalıcı olduğu
OpenClaw Docker'da çalışır, ancak asıl veri kaynağı Docker değildir. Uzun ömürlü durumların tamamı yeniden başlatmalardan, yeniden derlemelerden ve sistemin yeniden başlatılmasından sonra korunmalıdır.
| Bileşen | Konum | Kalıcılık mekanizması | Notlar |
|---|---|---|---|
| Gateway yapılandırması | /home/node/.openclaw/ |
Ana makine birim bağlaması | openclaw.json dosyasını içerir |
| Kanal/sağlayıcı kimlik bilgileri | /home/node/.openclaw/credentials/ |
Ana makine birim bağlaması | Kanal ve sağlayıcı kimlik bilgisi materyali |
| Model kimlik doğrulama profilleri | /home/node/.openclaw/agents/ |
Ana makine birim bağlaması | agents/<agentId>/agent/auth-profiles.json (OAuth, API anahtarları) |
| Eski OAuth anahtar dosyası | /home/node/.config/openclaw/ |
Ana makine birim bağlaması | Geçiş öncesi OAuth yardımcı dosyaları için salt okunur uyumluluk; openclaw doctor --fix bunları auth-profiles.json içine taşır |
| Skill yapılandırmaları | /home/node/.openclaw/skills/ |
Ana makine birim bağlaması | Skill düzeyindeki durum |
| Ajan çalışma alanı | /home/node/.openclaw/workspace/ |
Ana makine birim bağlaması | Kod ve ajan yapıtları |
| WhatsApp oturumu | /home/node/.openclaw/ |
Ana makine birim bağlaması | QR ile oturum açma durumunu korur |
| Gmail anahtarlığı | /home/node/.openclaw/ |
Ana makine birimi + parola | GOG_KEYRING_PASSWORD gerektirir |
| Plugin paketleri | /home/node/.openclaw/npm, /home/node/.openclaw/git |
Ana makine birim bağlaması | İndirilebilir Plugin paket kökleri |
| Harici ikili dosyalar | /usr/local/bin/ |
Docker imajı | Derleme sırasında imaja dahil edilmelidir |
| Node çalışma zamanı | Konteyner dosya sistemi | Docker imajı | Her imaj derlemesinde yeniden oluşturulur |
| İşletim sistemi paketleri | Konteyner dosya sistemi | Docker imajı | Çalışma zamanında yüklemeyin |
| Docker konteyneri | Geçici | Yeniden başlatılabilir | Güvenle yok edilebilir |
Güncellemeler
VM'de OpenClaw'ı güncellemek için:
git pulldocker compose builddocker compose up -d