|
|
FROM nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04 |
|
|
|
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive \ |
|
|
TZ=Asia/Kolkata \ |
|
|
PYTHONUNBUFFERED=1 \ |
|
|
RESOLUTION=1280x720x24 \ |
|
|
VNC_PASSWORD=password |
|
|
|
|
|
|
|
|
|
|
|
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/* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RUN mkdir -p /opt/novnc && \ |
|
|
ln -s /usr/share/novnc/* /opt/novnc/ && \ |
|
|
ln -s /usr/share/novnc/utils /opt/novnc/utils && \ |
|
|
\ |
|
|
|
|
|
mkdir -p /tmp/.X11-unix && \ |
|
|
chmod 1777 /tmp/.X11-unix && \ |
|
|
\ |
|
|
|
|
|
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/* |
|
|
|
|
|
|
|
|
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/ |
|
|
|
|
|
|
|
|
RUN mkdir -p /etc/supervisor/conf.d |
|
|
|
|
|
|
|
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf |
|
|
|
|
|
|
|
|
RUN ls -la /web-ui/src/utils/ |
|
|
COPY config.py /web-ui/src/utils/config.py |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
ENV HOME=/home/user |
|
|
RUN mkdir $HOME/.cache $HOME/.config $HOME/.vnc\ |
|
|
&& chmod -R 777 $HOME |
|
|
|
|
|
RUN touch ~/.vnc/x11vnc.log |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
RUN conda create -y -n webui python=3.11 && \ |
|
|
echo "conda activate webui" >> ~/.bashrc |
|
|
|
|
|
|
|
|
RUN chown user:user /var/log/x11vnc /var/log/x11vnc.log || true |
|
|
|
|
|
|
|
|
RUN mkdir -p /etc/supervisor/conf.d && \ |
|
|
mkdir -p /var/log/supervisor && \ |
|
|
mkdir -p /home/user/.vnc && \ |
|
|
chown -R user:user /home/user |
|
|
|
|
|
|
|
|
RUN chmod -R 755 /web-ui && \ |
|
|
chown -R user:user /var/log/supervisor || true |
|
|
|
|
|
|
|
|
|
|
|
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 7860 |
|
|
|
|
|
|
|
|
RUN chown -R user:user /web-ui && chmod -R 755 /web-ui |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CMD ["/web-ui/start.sh"] |