snapr / Dockerfile
lisekarimi
Deploy version 0.1.0
8366946
raw
history blame contribute delete
885 Bytes
FROM python:3.11-slim
# Install uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
WORKDIR /app
# Copy dependency files first (changes rarely)
COPY pyproject.toml uv.lock ./
# Put venv outside of /app so it won't be affected by volume mounts
ENV UV_PROJECT_ENVIRONMENT=/opt/venv
# Install dependencies (this will now create venv at /opt/venv)
RUN uv sync --locked --no-group docs --no-group notebook
# Create a non-root user
RUN useradd -m appuser
# Copy all source code
COPY . .
# Set ownership of writable dirs
RUN mkdir -p /app/memory && chown -R appuser:appuser /app/memory
# Switch to non-root user
USER appuser
# Set environment variables
ENV PYTHONUNBUFFERED=1
# Default command - use uv run to execute with the virtual environment
CMD ["bash", "-c", "set -e && uv run modal deploy -m src.modal_services.entry && uv run main.py"]
# CMD ["uv", "run", "main.py"]