File size: 2,752 Bytes
d7d2934 8a43ca9 d9afe4b d7d2934 bdd065a 1727112 d9afe4b cdfc8b3 1727112 cdfc8b3 1727112 cdfc8b3 1727112 cdfc8b3 1727112 cdfc8b3 c273690 bdd065a cdfc8b3 d9afe4b bdd065a 1727112 69210ea 049f904 d9afe4b 1b78bbc 299c065 d470fdb b6b7b62 bdd065a 2915d40 bdd065a a1af082 5acd02d 8e36933 5acd02d 3da3e4c cdfc8b3 d470fdb cdfc8b3 d9afe4b 2971656 d9afe4b d208c05 d9afe4b 3da3e4c 1727112 78be0d3 1727112 d9afe4b c273690 d470fdb bdd065a d470fdb bdd065a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | 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 \
curl \
ca-certificates \
sudo \
git \
wget \
procps \
git-lfs \
zip \
unzip \
htop \
vim \
nano \
bzip2 \
libx11-6 \
build-essential \
libsndfile-dev \
software-properties-common \
xfce4 xfce4-goodies \
x11vnc \
novnc websockify \
supervisor \
xvfb \
&& rm -rf /var/lib/apt/lists/*
# Create directory for noVNC
RUN mkdir -p /opt/novnc && \
ln -s /usr/share/novnc/* /opt/novnc/
# Clone repository
RUN git clone https://github.com/browser-use/web-ui.git /web-ui
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 /web-ui/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# 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 \
&& chmod -R 777 $HOME
# 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
# 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 && \
/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"]
# CMD ["/web-ui/start.sh"]
# Start supervisor
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|