25 lines
604 B
Docker
25 lines
604 B
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
FROM ghcr.io/astral-sh/uv:python3.14-alpine AS builder
|
|
WORKDIR /opt/app
|
|
|
|
COPY pyproject.toml uv.lock ./
|
|
RUN apk add --no-cache build-base libffi-dev \
|
|
&& uv sync --frozen --no-dev
|
|
|
|
# Only application source is copied into the image layer.
|
|
COPY app ./app
|
|
|
|
FROM python:3.14-alpine AS runtime
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV PATH="/opt/app/.venv/bin:${PATH}"
|
|
WORKDIR /opt/app
|
|
|
|
RUN apk add --no-cache libstdc++
|
|
|
|
COPY --from=builder /opt/app/.venv /opt/app/.venv
|
|
COPY app ./app
|
|
|
|
EXPOSE 8000
|
|
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "10"]
|