Download Dockerfile from chipling/test: direct link, hf CLI and curl.
- Browser
- Download file 1.8 kB
-
https://huggingface.co/spaces/chipling/test/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/chipling/test/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/chipling/test/resolve/main/Dockerfile
1.8 kB
| # Use the latest supported python slim image | |
| FROM python:3.9-slim | |
| # 1. Install system dependencies | |
| # We suppress prompts to avoid build errors | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # Note: Removed 'numpy' from this list. | |
| # Added 'dbus-x11' which is often needed for XFCE to start correctly in containers. | |
| RUN apt-get update && apt-get install -y \ | |
| xfce4 \ | |
| xfce4-terminal \ | |
| xvfb \ | |
| x11vnc \ | |
| novnc \ | |
| websockify \ | |
| firefox-esr \ | |
| sudo \ | |
| curl \ | |
| git \ | |
| vim \ | |
| procps \ | |
| dbus-x11 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 2. Setup a non-root user (Hugging Face Spaces defaults to UID 1000) | |
| RUN useradd -m -u 1000 user | |
| RUN echo "user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers | |
| # 3. Set up the working directory | |
| USER user | |
| ENV HOME=/home/user \ | |
| PATH=/home/user/.local/bin:$PATH | |
| WORKDIR $HOME | |
| # 4. Install Python dependencies (Numpy goes here!) | |
| RUN pip install --no-cache-dir numpy | |
| # 5. Create the start script | |
| # We configure the VNC and NoVNC connection here | |
| RUN echo '#!/bin/bash\n\ | |
| \n\ | |
| # Set VNC password (default: password)\n\ | |
| export VNC_PASSWD=${VNC_PASSWD:-password}\n\ | |
| \n\ | |
| # Start Xvfb (Virtual Monitor)\n\ | |
| # 1280x720 is a good standard size\n\ | |
| Xvfb :1 -screen 0 1280x720x16 &\n\ | |
| export DISPLAY=:1\n\ | |
| sleep 2\n\ | |
| \n\ | |
| # Start Window Manager (XFCE)\n\ | |
| startxfce4 &\n\ | |
| sleep 2\n\ | |
| \n\ | |
| # Start VNC Server\n\ | |
| mkdir -p ~/.vnc\n\ | |
| x11vnc -storepasswd "$VNC_PASSWD" ~/.vnc/passwd\n\ | |
| x11vnc -display :1 -rfbauth ~/.vnc/passwd -forever -shared -bg\n\ | |
| \n\ | |
| # Start NoVNC (The Web Interface)\n\ | |
| # This bridges the VNC server (5900) to the Web Port (7860)\n\ | |
| echo "Starting NoVNC..."\n\ | |
| websockify --web /usr/share/novnc/ 7860 localhost:5900\n\ | |
| ' > start.sh | |
| RUN chmod +x start.sh | |
| # 6. Expose the Hugging Face port | |
| EXPOSE 7860 | |
| # 7. Run the start script | |
| CMD ["./start.sh"] |