From b0c77e36138b5e4d013f225ab43cbc1a7469870c Mon Sep 17 00:00:00 2001 From: Dad Date: Wed, 13 Aug 2025 23:44:08 -0400 Subject: [PATCH] Updated Dockerfile --- Dockerfile | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..93135ec --- /dev/null +++ b/Dockerfile @@ -0,0 +1,51 @@ +FROM nvcr.io/nvidia/cuda:12.9.1-cudnn-runtime-ubuntu22.04 + +# Install Python 3.11 and system dependencies +RUN apt-get update && apt-get install -y \ + python3.11 python3-pip git curl libgl1 libglib2.0-0 ffmpeg \ + && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ + apt-get install -y nodejs \ + && apt-get clean && rm -rf /var/lib/apt/lists/* + +RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1 && \ + update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 + +RUN python -m pip install --upgrade pip + +# Set working directory +WORKDIR /app + +# Clone Open WebUI +RUN git clone https://github.com/open-webui/open-webui.git . + +# Patch env.py for Python 3.11 compatibility +RUN sed -i 's/logging.getLevelNamesMapping()/logging._nameToLevel/' /app/backend/open_webui/env.py + +# Set Node.js memory limit for build +ENV NODE_OPTIONS="--max_old_space_size=8192" + +# Build frontend +WORKDIR /app/frontend +RUN npm install y-protocols --legacy-peer-deps +RUN npm install --legacy-peer-deps + +# Build the frontend with verbose logging +RUN npm run build --verbose || true + +# Change ownership of the backend directory +RUN chown -R 1001:1001 /app/backend + +# Install backend dependencies +WORKDIR /app/backend +RUN python -m pip install --no-cache-dir -r requirements.txt uvicorn + +# Install PyTorch with CUDA 12.x support +RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 + +# Set the DATABASE_URL environment variable (uncomment if needed) +# ENV DATABASE_URL='sqlite:////home/llm/open-webui/database.db' +# RUN python -m peewee_migrate migrate + +EXPOSE 3000 + +CMD ["uvicorn", "open_webui.main:app", "--host", "0.0.0.0", "--port", "3000"]