Create Dockerfile
Browse files- 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"]
|