-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
30 lines (26 loc) · 796 Bytes
/
Dockerfile
File metadata and controls
30 lines (26 loc) · 796 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
FROM python:3.10-slim-bullseye AS base
ENV PYTHONUNBUFFERED=true
WORKDIR /app
FROM base AS builder
ENV POETRY_VERSION=1.5
ENV POETRY_HOME=/opt/poetry
ENV POETRY_VIRTUALENVS_IN_PROJECT=true
ENV PATH="$POETRY_HOME/bin:$PATH"
RUN python -m pip install "poetry==$POETRY_VERSION"
ADD data ./data
ADD ml ./ml
COPY main.py services.py logs.py exceptions.py poetry.lock pyproject.toml ./
RUN poetry install --no-interaction --no-ansi -vvv
FROM base AS tester
ENV PATH="/app/.venv/bin:$PATH"
COPY --from=builder /app /app
COPY conftest.py ./
COPY data ./data
ADD tests ./tests
CMD ["pytest"]
FROM base AS runner
ENV PATH="/app/.venv/bin:$PATH"
COPY --from=builder /app /app
COPY .env ./.env
CMD env $(cat .env | grep -v '^#' | xargs)
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]