Download Dockerfile from binary1ne/web-ui: direct link, hf CLI and curl.
- Browser
- Download file 4.23 kB
-
https://huggingface.co/spaces/binary1ne/web-ui/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/binary1ne/web-ui/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/binary1ne/web-ui/resolve/main/Dockerfile
4.23 kB
| FROM nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04 | |
| # Environment settings | |
| ENV DEBIAN_FRONTEND=noninteractive \ | |
| TZ=Asia/Kolkata \ | |
| PYTHONUNBUFFERED=1 \ | |
| RESOLUTION=1280x720x24 \ | |
| VNC_PASSWORD=password | |
| # Install required OS packages (minimal set) | |
| RUN rm -f /etc/apt/sources.list.d/*.list && \ | |
| apt-get update && apt-get install -y --no-install-recommends \ | |
| ca-certificates \ | |
| sudo \ | |
| git git-lfs \ | |
| curl wget net-tools \ | |
| procps \ | |
| zip unzip \ | |
| htop \ | |
| vim nano \ | |
| bzip2 \ | |
| libx11-6 \ | |
| build-essential \ | |
| libsndfile-dev \ | |
| software-properties-common \ | |
| xfce4 xfce4-goodies \ | |
| x11vnc xvfb \ | |
| novnc websockify \ | |
| supervisor \ | |
| tigervnc-standalone-server \ | |
| tigervnc-common \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # # Proper noVNC setup X11 and logs (fixed) | |
| # RUN mkdir -p /opt/novnc && \ | |
| # ln -s /usr/share/novnc/* /opt/novnc/ && \ | |
| # ln -s /usr/share/novnc/utils /opt/novnc/utils &&\ | |
| # mkdir -p /var/log/x11vnc && \ | |
| # touch /var/log/x11vnc.log && \ | |
| # chmod 755 /var/log/x11vnc && \ | |
| # chmod 644 /var/log/x11vnc.log && \ | |
| # chmod -R 755 /opt/novnc && \ | |
| # chmod +x /opt/novnc/utils/* | |
| # Proper noVNC setup X11 and logs (fixed) | |
| RUN mkdir -p /opt/novnc && \ | |
| ln -s /usr/share/novnc/* /opt/novnc/ && \ | |
| ln -s /usr/share/novnc/utils /opt/novnc/utils && \ | |
| \ | |
| # Fix X11 socket dir | |
| mkdir -p /tmp/.X11-unix && \ | |
| chmod 1777 /tmp/.X11-unix && \ | |
| \ | |
| # Fix logs for x11vnc | |
| mkdir -p /var/log/x11vnc && \ | |
| touch /var/log/x11vnc.log && \ | |
| chmod 755 /var/log/x11vnc && \ | |
| chmod 644 /var/log/x11vnc.log && \ | |
| \ | |
| # Fix novnc perms | |
| chmod -R 755 /opt/novnc && \ | |
| chmod +x /opt/novnc/utils/* | |
| # Clone repository | |
| RUN git clone https://github.com/browser-use/web-ui.git | |
| WORKDIR /web-ui | |
| RUN pwd && ls -la /web-ui | |
| COPY webui_with_vnc.py start.sh /web-ui/ | |
| # Create supervisor directory first | |
| RUN mkdir -p /etc/supervisor/conf.d | |
| # Copy your custom supervisor config | |
| COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf | |
| # COPY /web-ui/src/utils/config.py /web-ui/src/utils/config_1.py | |
| RUN ls -la /web-ui/src/utils/ | |
| COPY config.py /web-ui/src/utils/config.py | |
| # Create a non-root user and switch to it | |
| RUN adduser --disabled-password --gecos '' --shell /bin/bash user \ | |
| && chown -R user:user /web-ui | |
| RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user | |
| USER user | |
| # All users can use /home/user as their home directory | |
| ENV HOME=/home/user | |
| RUN mkdir $HOME/.cache $HOME/.config $HOME/.vnc\ | |
| && chmod -R 777 $HOME | |
| RUN touch ~/.vnc/x11vnc.log | |
| # Set up the Conda environment | |
| ENV CONDA_AUTO_UPDATE_CONDA=false \ | |
| PATH=$HOME/miniconda/bin:$PATH | |
| RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh \ | |
| && chmod +x ~/miniconda.sh \ | |
| && ~/miniconda.sh -b -p ~/miniconda \ | |
| && rm ~/miniconda.sh \ | |
| && conda clean -ya | |
| # Create and activate Conda environment with Python 3.11 | |
| RUN conda create -y -n webui python=3.11 && \ | |
| echo "conda activate webui" >> ~/.bashrc | |
| # Fix permissions for X11 and logs (fixed) | |
| RUN chown user:user /var/log/x11vnc /var/log/x11vnc.log || true | |
| # Set up supervisor and permissions | |
| RUN mkdir -p /etc/supervisor/conf.d && \ | |
| mkdir -p /var/log/supervisor && \ | |
| mkdir -p /home/user/.vnc && \ | |
| chown -R user:user /home/user | |
| # Final permission fixes | |
| RUN chmod -R 755 /web-ui && \ | |
| chown -R user:user /var/log/supervisor || true | |
| # Install dependencies into Conda env | |
| RUN /home/user/miniconda/envs/webui/bin/pip install --no-cache-dir --upgrade pip uv==0.4.17 playwright gradio python-dotenv && \ | |
| /home/user/miniconda/envs/webui/bin/pip install --no-cache-dir -r requirements.txt && \ | |
| /home/user/miniconda/envs/webui/bin/playwright install --with-deps chromium | |
| # Expose application port | |
| EXPOSE 7860 | |
| # Fix ownership and permissions | |
| RUN chown -R user:user /web-ui && chmod -R 755 /web-ui | |
| # Use Conda environment Python explicitly | |
| # CMD ["/home/user/miniconda/envs/webui/bin/python", "webui.py", "--ip", "0.0.0.0", "--port", "7860"] | |
| # Start supervisor | |
| # CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] | |
| CMD ["/web-ui/start.sh"] |