sparkle/Dockerfile

40 lines
773 B
Docker

# base layer
FROM python:3.12-alpine as base
ARG DEV=false
ENV VIRTUAL_ENV=/app/.venv \
PATH="/app/.venv/bin:$PATH"
RUN apk update && \
apk add libpq
# builder layer
FROM base as builder
ENV POETRY_NO_INTERACTION=1 \
POETRY_VIRTUALENVS_IN_PROJECT=true \
POETRY_VIRTUALENVS_CREATE=1 \
POETRY_CACHE_DIR='/tmp/poetry_cache'
RUN apk update && \
apk add musl-dev build-base gcc gfortran openblas-dev
WORKDIR /sparkle
RUN pip install poetry==1.8.3
# Install the app
COPY pyproject.toml poetry.lock ./
RUN poetry install dev --no-root && rm -rf $POETRY_CACHE_DIR;
FROM base as runtime
COPY --from=builder ${VIRTUAL_ENV} ${VIRTUAL_ENV}
COPY app ./app
WORKDIR /sparkle/app
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]