Hosting
Docker sanal makine çalışma zamanı
GCP, Hetzner ve benzeri VPS sağlayıcılarındaki VM tabanlı Docker kurulumları için paylaşılan çalışma zamanı adımları.
Gerekli ikili dosyaları imaja dahil edin
Çalışan bir konteynerin içine ikili dosya yüklemek tuzaktı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:
gog(kaynak:gogcli) Gmail erişimi içingoplacesGoogle Places içinwacliWhatsApp için
Bunlar örnektir, eksiksiz bir liste değildir. Aynı kalıbı kullanarak skill'lerinizin ihtiyaç duyduğu kadar ikili dosya 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ık 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ık 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ık 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"]Derleyin ve başlatın
docker compose builddocker compose up -d openclaw-gatewayDerleme, pnpm install --frozen-lockfile sırasında Killed veya 137 çıkış koduyla başarısız olursa VM'in 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 tarafından 200 yanıtı döndürülmesi, Gateway işleminin bağlantıları dinlediğini ve sağlıklı olduğunu doğrular; yerleşik imaj HEALTHCHECK aynı uç noktayı yoklar.
Neler nerede kalıcıdır
OpenClaw Docker'da çalışır, ancak doğruluğun kaynağı Docker değildir. Tüm uzun ömürlü durumlar yeniden başlatmalardan, yeniden derlemelerden ve yeniden açılışlardan sonra korunmalıdır.
| Bileşen | Konum | Kalıcılık mekanizması | Notlar |
|---|---|---|---|
| Gateway yapılandırması | /home/node/.openclaw/ |
Ana makine birim bağlama | openclaw.json dahildir |
| Kanal/sağlayıcı kimlik bilgileri | /home/node/.openclaw/credentials/ |
Ana makine birim bağlama | Kanal ve sağlayıcı kimlik bilgisi materyali |
| Model kimlik doğrulama profilleri | /home/node/.openclaw/agents/ |
Ana makine birim bağlama | agents/<agentId>/agent/auth-profiles.json (OAuth, API anahtarları) |
| Eski OAuth anahtar dosyası | /home/node/.config/openclaw/ |
Ana makine birim bağlama | Geçiş öncesi OAuth yan 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ğlama | Skill düzeyinde durum |
| Ajan çalışma alanı | /home/node/.openclaw/workspace/ |
Ana makine birim bağlama | Kod ve ajan eserleri |
| WhatsApp oturumu | /home/node/.openclaw/ |
Ana makine birim bağlama | QR ile oturum açmayı 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ğlama | İ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