22 lines
777 B
Docker
22 lines
777 B
Docker
FROM python:3.13-slim
|
|
|
|
# Install PortAudio (required by sounddevice) and uv
|
|
RUN apt-get update && apt-get install -y --no-install-recommends portaudio19-dev && rm -rf /var/lib/apt/lists/* && pip install --no-cache-dir uv
|
|
|
|
# Copy the project into the image
|
|
COPY pyproject.toml uv.lock .python-version /app/
|
|
COPY vibe_bot /app/vibe_bot
|
|
COPY kokoro-v1.0.onnx voices-v1.0.bin /app/
|
|
|
|
# Disable development dependencies
|
|
ENV UV_NO_DEV=1
|
|
|
|
# Sync the project into a new environment, asserting the lockfile is up to date
|
|
WORKDIR /app
|
|
RUN uv sync --locked
|
|
|
|
# Run as a non-root user: /app holds the relative default DB (chat_history.db), /db is the mounted volume
|
|
RUN useradd -m bot && chown -R bot:bot /app && mkdir -p /db && chown bot:bot /db
|
|
USER bot
|
|
|
|
CMD uv run python -m vibe_bot.main |