FROM python:3.12-bookworm # Install uv COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/ # Set working directory WORKDIR /app # Copy uv files first for better layer caching COPY uv.lock pyproject.toml ./ # Install dependencies using uv RUN uv sync --frozen --no-cache # Copy application code COPY app.py models.py ./ # Expose the port Chainlit runs on EXPOSE 8000 # Use uv to run the application CMD ["uv", "run", "chainlit", "run", "app.py", "--host", "0.0.0.0", "--port", "8000"]