-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
49 lines (29 loc) · 796 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
41
42
43
44
45
46
47
48
49
ARG PROJECT_NAME=my_vocab_backend
ARG USER=${PROJECT_NAME}_user
ARG WORKDIR=/home/${USER}/${PROJECT_NAME}
FROM python:3.10-slim as base
ARG PROJECT_NAME
ARG USER
ARG WORKDIR
RUN useradd -m ${USER}
RUN pip install --upgrade pip
USER ${USER}
RUN mkdir ${WORKDIR}
WORKDIR ${WORKDIR}
ENV PATH=/home/${USER}/.local/bin:${PATH}
ENV PYTHONPATH=${WORKDIR}
ENV PYTHONDONTWRITEBYTECODE=1
ENV PIPENV_VENV_IN_PROJECT=1
COPY --chown=${USER} Pipfile Pipfile.lock ./
RUN pip install -U pipenv
RUN pipenv install --deploy
FROM base as main
ARG USER
COPY --chown=${USER} . .
CMD ["pipenv", "run", "python", "app/__main__.py"]
FROM base as pre-test
RUN pipenv install --dev --deploy
FROM pre-test as test
ARG USER
COPY --chown=${USER} . .
CMD ["pipenv", "run", "bash", "./scripts/full_test.sh"]