# Stage 1: Build FROM node:20-slim AS builder WORKDIR /app # Install git to clone the repo RUN apt-get update && apt-get install -y git # Clone OpenClaw (Change the URL if you use a specific fork) RUN git clone https://github.com/idootop/openclaw.git . # Install dependencies RUN npm install # Build the project RUN npm run build # Stage 2: Runtime FROM node:20-slim WORKDIR /app # Copy built files from builder COPY --from=builder /app . # Create a directory for persistent data and set permissions # HF Spaces use UID 1000 RUN mkdir -p /app/data && chown -R 1000:1000 /app # Copy the start script COPY start.sh /app/start.sh RUN chmod +x /app/start.sh # Set environment variables ENV PORT=7860 ENV NODE_ENV=production USER 1000 EXPOSE 7860 CMD ["./start.sh"]