startmenu commited on
Commit
aebc1be
·
verified ·
1 Parent(s): 1368344

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +8 -0
Dockerfile ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ FROM node:22-slim
2
+ # Install system dependenciesRUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
3
+ # Install OpenClaw globallyRUN npm install -g openclaw@latest
4
+ # Create config directoryRUN mkdir -p /root/.openclaw
5
+ # Set up environment for Hugging Face SpacesENV PORT=18789ENV OPENCLAW_GATEWAY_MODE=localENV OPENCLAW_GATEWAY_PASSWORD=${OPENCLAW_GATEWAY_PASSWORD}
6
+ # Expose the port (Hugging Face default)EXPOSE 18789
7
+ # Create a startup script that generates config and starts OpenClawRUN echo '#!/bin/bash\n\set -x\n\\n\# Check for required environment variables\n\if [ -z "$GEMINI_APIKEY" ]; then\n\  echo "ERROR: GEMINI_APIKEY is not set. Agent will fail. Exiting."\n\  exit 1\n\fi\n\\n\# Create critical missing directories\n\mkdir -p /root/.openclaw/agents/main/agent\n\mkdir -p /root/.openclaw/agents/main/sessions\n\mkdir -p /root/.openclaw/credentials\n\\n\# Remove auth-profiles.json if it exists to force env var usage\n\rm -f /root/.openclaw/agents/main/agent/auth-profiles.json\n\\n\# Generate minimal config if not exists\n\if [ ! -f /root/.openclaw/openclaw.json ]; then\n\  cat > /root/.openclaw/openclaw.json << EOF\n\{\n\  "env": {\n\    "GOOGLE_API_KEY": "${GEMINI_APIKEY}",\n\    "GEMINI_API_KEY": "${GEMINI_APIKEY}",\n\    "GOOGLE_GENERATIVE_AI_API_KEY": "${GEMINI_APIKEY}",\n\    "PALM_API_KEY": "${GEMINI_APIKEY}"\n\  },\n\  "gateway": {\n\    "mode": "local",\n\    "bind": "lan",\n\    "port": 18789,\n\    "trustedProxies": ["0.0.0.0/0"],\n\    "auth": {\n\      "mode": "token",\n\      "token": "${OPENCLAW_GATEWAY_PASSWORD}"\n\    },\n\    "controlUi": {\n\      "allowInsecureAuth": true\n\    }\n\  },\n\  "agents": {\n\    "defaults": {\n\      "model": {\n\        "primary": "google/gemini-1.5-pro"\n\      }\n\    }\n\  }\n\}\n\EOF\n\fi\n\\n\# Fix permissions\n\chmod 700 /root/.openclaw\n\chmod 600 /root/.openclaw/openclaw.json\n\chmod 600 /root/.openclaw/agents/main/agent/auth-profiles.json\n\\n\# Fix config if needed\n\openclaw doctor --fix\n\\n\# Start OpenClaw gateway\n\echo "Starting OpenClaw gateway on port 18789..."\n\exec openclaw gateway run --port 18789\n\' > /usr/local/bin/start-openclaw && chmod +x /usr/local/bin/start-openclaw
8
+ CMD ["/usr/local/bin/start-openclaw"]