-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
40 lines (25 loc) · 913 Bytes
/
Dockerfile
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
31
32
33
34
35
36
37
38
39
40
FROM python:3.10-alpine AS base
ARG ENVIRONMENT
ENV PYROOT /pyroot
ENV PYTHONUSERBASE ${PYROOT}
ENV PATH=${PATH}:${PYROOT}/bin
RUN apk update
RUN apk add --no-cache g++ snappy-dev
RUN PIP_USER=1 pip install pipenv
COPY requirements.txt ./
RUN PIP_USER=1 pipenv install -r requirements.txt
RUN if [ "$ENVIRONMENT" = "test" ]; then PIP_USER=1 pipenv install --system --deploy --ignore-pipfile; \
else PIP_USER=1 pipenv install --system --deploy --ignore-pipfile; fi
FROM python:3.10-alpine
ENV PYROOT /pyroot
ENV PYTHONUSERBASE ${PYROOT}
ENV PATH=${PATH}:${PYROOT}/bin
RUN apk update
RUN apk add --no-cache g++ snappy-dev
RUN addgroup -S myapp && adduser -S -G myapp user -u 1234
COPY --chown=user:myapp --from=base ${PYROOT}/ ${PYROOT}/
RUN mkdir -p /usr/src/app
WORKDIR /usr/src
COPY --chown=user:myapp app ./app
USER 1234
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8080"]