llmstack / Dockerfile
oneyou's picture
Update Dockerfile
01c119e verified
# Use Python 3.11.9 base image
FROM python:3.11.9
# Install system dependencies for Chromium, FFMPEG, and other tools
RUN apt-get update && \
apt-get install -y \
libnss3 \
libnspr4 \
libdbus-1-3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libatspi2.0-0 \
libxcomposite1 \
libxdamage1 \
libxrandr2 \
libgbm1 \
libxkbcommon0 \
libasound2 \
ffmpeg \
curl \
ca-certificates \
libgl1 \
gnupg \
wget \
lsb-release \
xauth \
xvfb \
&& rm -rf /var/lib/apt/lists/*
# Install Docker CLI
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update && \
apt-get install -y docker-ce-cli
# Install Playwright dependencies
RUN apt-get install -y \
libgbm-dev \
libgtk-3-0 \
libnotify-dev \
libglib2.0-0 \
libgtk-3-dev \
libnotify-dev \
libxss1 \
libxtst6
# Create a non-root user
RUN useradd -m -u 1000 user
# Set the user and environment variables
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH \
PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
DOCKER_HOST=unix:///var/run/docker.sock
# Set the working directory
WORKDIR $HOME/app
# Copy the application code
COPY --chown=user . $HOME/app
# Install Python dependencies
RUN pip install --no-cache-dir \
llmstack \
django \
djangorestframework \
ujson \
pykka \
orjson \
openai \
django-flags \
psycopg2-binary \
django-rq \
django-allauth \
ultralytics \
opencv-python-headless \
playwright
# Provide default values for admin username, email, password, and OpenAI API key
ARG ADMIN_USERNAME=aman
ARG ADMIN_EMAIL=aman.s@amazatic.com
ARG ADMIN_PASSWORD=123
ARG OPENAI_API_KEY="lksdfsdjre3445kjkjsfjk"
# Set the default admin username, email, password, and OpenAI API key as environment variables
ENV ADMIN_USERNAME=$ADMIN_USERNAME \
ADMIN_EMAIL=$ADMIN_EMAIL \
ADMIN_PASSWORD=$ADMIN_PASSWORD \
OPENAI_API_KEY=$OPENAI_API_KEY
# Expose the port for the LLMStack server
EXPOSE 7860
# Start LLMStack with default admin username, email, password, and OpenAI API key
CMD echo -e "$ADMIN_USERNAME\n$ADMIN_EMAIL\n$ADMIN_PASSWORD\n$OPENAI_API_KEY" | llmstack