25 lines
572 B
Docker
25 lines
572 B
Docker
FROM python:3.12-slim AS builder
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends curl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /build
|
|
COPY pyproject.toml uv.lock ./
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
RUN curl -LsSf https://astral.sh/uv/0.5.25/install.sh | sh \
|
|
&& . "$HOME/.local/bin/env" \
|
|
&& uv sync --frozen
|
|
|
|
SHELL ["/bin/sh", "-c"]
|
|
|
|
FROM builder AS runtime
|
|
|
|
RUN groupadd -r appuser \
|
|
&& useradd -r -g appuser -d /app -s /bin/bash appuser
|
|
|
|
WORKDIR /app
|
|
COPY src/ ./src/
|
|
|
|
RUN chown -R appuser:appuser /app /build
|
|
|
|
USER appuser |