51 lines
1.3 KiB
Plaintext
51 lines
1.3 KiB
Plaintext
# This is an example Dockerfile that builds a minimal container for running LK Agents
|
|
# syntax=docker/dockerfile:1
|
|
ARG PYTHON_VERSION=3.11.6
|
|
FROM python:${PYTHON_VERSION}-slim
|
|
|
|
# Prevents Python from writing pyc files.
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
|
|
# Keeps Python from buffering stdout and stderr to avoid situations where
|
|
# the application crashes without emitting any logs due to buffering.
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
|
# Create a non-privileged user that the app will run under.
|
|
# See https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user
|
|
ARG UID=10001
|
|
RUN adduser \
|
|
--disabled-password \
|
|
--gecos "" \
|
|
--home "/home/appuser" \
|
|
--shell "/sbin/nologin" \
|
|
--uid "${UID}" \
|
|
appuser
|
|
|
|
# Install gcc, g++ and other build dependencies.
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
gcc \
|
|
g++ \
|
|
python3-dev \
|
|
libglib2.0-0 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
USER appuser
|
|
|
|
RUN mkdir -p /home/appuser/.cache
|
|
RUN chown -R appuser /home/appuser/.cache
|
|
|
|
WORKDIR /home/appuser
|
|
|
|
COPY requirements.txt .
|
|
RUN python -m pip install --user --no-cache-dir -r requirements.txt
|
|
|
|
# ensure that any dependent models are downloaded at build-time
|
|
RUN python -m livekit.agents download-files
|
|
|
|
COPY . .
|
|
|
|
# Run the application.
|
|
ENTRYPOINT ["python", "myagent.py"]
|
|
CMD ["start"]
|