-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile
More file actions
46 lines (38 loc) · 1.08 KB
/
Dockerfile
File metadata and controls
46 lines (38 loc) · 1.08 KB
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
ARG IMAGE_TAG="python3.7-alpine3.8"
# Build dependencies in separate container
FROM tiangolo/uvicorn-gunicorn:${IMAGE_TAG} AS builder
ENV WORKDIR /app
COPY Pipfile ${WORKDIR}/
COPY Pipfile.lock ${WORKDIR}/
RUN apk add --update postgresql-dev gcc python3-dev musl-dev
RUN cd ${WORKDIR} \
&& pip install pipenv \
&& pipenv install --system --deploy
# Create the final container with the app
FROM tiangolo/uvicorn-gunicorn:${IMAGE_TAG}
RUN apk add --update libpq
ENV USER=docker \
GROUP=docker \
UID=12345 \
GID=23456 \
HOME=/app \
PYTHONUNBUFFERED=1
WORKDIR ${HOME}
# Create user/group
RUN addgroup --gid "${GID}" "${GROUP}" \
&& adduser \
--disabled-password \
--gecos "" \
--home "$(pwd)" \
--ingroup "${GROUP}" \
--no-create-home \
--uid "${UID}" \
"${USER}"
# Run as docker user
USER ${USER}
# Copy installed packages
COPY --from=builder /usr/local/lib/python3.7/site-packages /usr/local/lib/python3.7/site-packages
# Copy the application
COPY --chown=docker:docker . .
# Collect the static files
RUN python manage.py collectstatic --noinput