37 lines
707 B
Docker
37 lines
707 B
Docker
FROM python:3.14-slim AS builder
|
|
|
|
ENV POETRY_NO_INTERACTION=1 \
|
|
POETRY_VIRTUALENVS_IN_PROJECT=true
|
|
|
|
RUN pip install --upgrade pip
|
|
RUN pip install poetry
|
|
|
|
WORKDIR /app
|
|
|
|
COPY poetry.lock pyproject.toml ./
|
|
|
|
RUN poetry install --only main --no-root
|
|
|
|
|
|
FROM python:3.14-slim AS runtime
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
|
|
RUN adduser --disabled-password --gecos "" appuser
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /app/.venv /app/.venv
|
|
COPY --from=builder /app/pyproject.toml /app/poetry.lock ./
|
|
COPY . /app
|
|
|
|
RUN mkdir -p /data && chown appuser:appuser /data
|
|
|
|
ENV PATH="/app/.venv/bin:$PATH"
|
|
|
|
USER appuser
|
|
|
|
EXPOSE 8000
|
|
CMD ["uvicorn", "fdhview.main:app", "--host", "0.0.0.0", "--port", "8000"]
|