FROM nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04 ENV DEBIAN_FRONTEND=noninteractive \ TZ=Asia/Kolkata \ PYTHONUNBUFFERED=1 \ PATH="/opt/venv/bin:$PATH" # Create and use a non-root user RUN useradd -ms /bin/bash admin # Install required OS packages (minimal set, pinned where possible) RUN apt-get update && \ apt-get install -y --no-install-recommends \ curl \ ca-certificates \ git \ wget \ procps \ git-lfs \ unzip \ bzip2 \ libx11-6 \ build-essential \ libsndfile-dev \ python3-pip \ python3-venv \ && rm -rf /var/lib/apt/lists/* # Clone repository RUN git clone https://github.com/browser-use/web-ui.git /web-ui WORKDIR /web-ui # Install uv globally (avoids pip bootstrap issues) RUN pip3 install --no-cache-dir uv==0.4.17 # Create virtual environment in /opt (exec-mounted path) RUN uv venv --python 3.11 && \ chmod -R a+rx /web-ui/.venv && chmod -R a+r /web-ui/.venv # Install dependencies inside venv RUN .venv/bin/pip3 install --no-cache-dir --upgrade pip uv==0.4.17 playwright && \ .venv/bin/pip3 install --no-cache-dir -r requirements.txt && \ .venv/bin/playwright install --with-deps chromium # Expose application port EXPOSE 7860 # Set ownership and permissions for the app directory RUN chown -R admin:admin /web-ui && chmod -R 777 /web-ui # Switch to the non-root user for better security USER admin # Explicitly use venv Python CMD [".venv/bin/python3", "webui.py", "--ip", "0.0.0.0", "--port", "7860"]