Files
home-llm/Dockerfile

52 lines
1.7 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ---------- Stage 1: Frontend ----------
FROM node:20-bullseye-slim AS frontend
WORKDIR /app
# Pull source with all submodules
RUN apt-get update && apt-get install -y git \
&& git clone --branch main --recurse-submodules https://github.com/open-webui/open-webui.git . \
&& git submodule update --init --recursive
# Build frontend
ENV NODE_OPTIONS="--max_old_space_size=8192"
RUN npm ci --legacy-peer-deps && npm run build
# Optional check
RUN ls -la /app/build
# ---------- Stage 2: Backend ----------
FROM nvidia/cuda:12.9.1-cudnn-runtime-ubuntu22.04
# Install system deps
RUN apt-get update && apt-get install -y \
python3.11 python3-pip git curl libgl1 libglib2.0-0 ffmpeg \
&& 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
# Clone backend code
WORKDIR /app
RUN git clone --branch main --recurse-submodules https://github.com/open-webui/open-webui.git . \
&& git submodule update --init --recursive
# Patch (if needed) for logging API change
RUN sed -i 's/logging.getLevelNamesMapping()/logging._nameToLevel/' backend/open_webui/env.py
# Copy frontend build from Stage 1
COPY --from=frontend /app/build /app/build
# Install Python deps
WORKDIR /app/backend
RUN pip install --no-cache-dir -r requirements.txt uvicorn \
&& pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# Force Python to see /app as a toplevel package location
WORKDIR /app
ENV PYTHONPATH=/app:/app/backend
EXPOSE 3000
CMD ["uvicorn", "backend.open_webui.main:app", "--host", "0.0.0.0", "--port", "3000"]