| # ============================================================ | |
| # OpenClaw – Hugging Face Space (Docker) | |
| # ============================================================ | |
| # Usa l'immagine ufficiale pre-compilata di OpenClaw | |
| # oppure installa via npm se l'immagine non è disponibile. | |
| # ============================================================ | |
| FROM node:22-bookworm-slim | |
| # Installa dipendenze di sistema | |
| RUN apt-get update && apt-get install -y \ | |
| curl \ | |
| ca-certificates \ | |
| tini \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Installa OpenClaw globalmente (richiede Node 22+) | |
| RUN npm install -g openclaw@latest | |
| # Crea directory di configurazione | |
| RUN mkdir -p /home/node/.openclaw/workspace && \ | |
| chown -R node:node /home/node/.openclaw | |
| # Copia script di avvio | |
| COPY start.sh /app/start.sh | |
| RUN chmod +x /app/start.sh && chown node:node /app/start.sh | |
| # HF Spaces usa la porta 7860 come default | |
| EXPOSE 7860 | |
| # Variabili d'ambiente di default | |
| ENV OPENCLAW_GATEWAY_PORT=7860 | |
| ENV OPENCLAW_GATEWAY_BIND=0.0.0.0 | |
| ENV NODE_ENV=production | |
| ENV OPENCLAW_MODEL=groq/llama-3.3-70b-versatile | |
| # Usa l'utente non-root (node uid=1000, compatibile con HF Spaces) | |
| USER node | |
| WORKDIR /home/node | |
| # tini come init per gestire segnali correttamente | |
| ENTRYPOINT ["/usr/bin/tini", "--"] | |
| CMD ["/app/start.sh"] | |