version: "3.8" services: openclaw: build: context: .. dockerfile: docker/Dockerfile platforms: - linux/arm64 image: openclaw:custom-arm64 container_name: openclaw-gateway restart: unless-stopped # OpenClaw ports ports: - "8080:8080" # Persistent volumes for configs and secrets volumes: # Your workspace (for memory, agents, etc) - ./workspace:/home/node/.openclaw/workspace # Configs mounted from host (not in image) - ./config:/data/config:ro # Secrets mounted from host (read-only, not in image) - ./secrets:/data/secrets:ro # gog OAuth tokens and config (persistent) - gog-data:/data/gog # OpenClaw runtime data - openclaw-data:/home/node/.openclaw environment: - OPENCLAW_CONFIG_DIR=/data/config - GOG_CONFIG_DIR=/data/gog - GOOGLE_APPLICATION_CREDENTIALS=/data/secrets/google-credentials.json - GOG_ACCOUNT=${GOG_ACCOUNT:-} # Health check using our custom tool healthcheck: test: ["CMD", "healthcheck.sh"] interval: 30s timeout: 10s retries: 3 start_period: 30s volumes: gog-data: openclaw-data: