Spaces:
Running
Running
| # Use Node 22 for OpenClaude compatibility | |
| FROM node:22-bookworm | |
| # 1. Install system tools (ripgrep is required by OpenClaude) | |
| RUN apt-get update && apt-get install -y \ | |
| ripgrep build-essential cmake git libjson-c-dev libwebsockets-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 2. Install ttyd (Web Terminal) | |
| RUN git clone --depth=1 https://github.com/tsl0922/ttyd.git && \ | |
| cd ttyd && mkdir build && cd build && \ | |
| cmake .. && make && make install && \ | |
| cd ../.. && rm -rf ttyd | |
| # 3. Create a non-root user (Required for HF Spaces) | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| ENV HOME=/home/user \ | |
| PATH=/home/user/.local/bin:$PATH | |
| # 4. Install OpenClaude globally for the user | |
| RUN npm install -g @gitlawb/openclaude | |
| # 5. Set up the persistent directory | |
| # We assume the Bucket is mounted at /data | |
| WORKDIR /data | |
| # Expose the HF default port | |
| EXPOSE 7860 | |
| # Start ttyd. | |
| # -W allows writing (typing in the terminal) | |
| # -p 7860 is the port HF listens to | |
| # /bin/bash is the starting shell | |
| CMD ["ttyd", "-W", "-p", "7860", "/bin/bash"] |