-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
33 lines (28 loc) · 939 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
FROM python:3.8-alpine
WORKDIR /app
# Start server command
CMD gunicorn app:app --worker-class eventlet --bind 0.0.0.0:8000 --workers 1 --log-level info --access-logfile -
EXPOSE 8000
# Convert pipenv to requirements.txt
RUN pip install pipenv
COPY Pipfile* /tmp/
RUN cd /tmp && pipenv requirements > /app/requirements.txt
# Install dependencies
RUN apk add --no-cache --virtual .build-deps \
build-base postgresql-dev libffi-dev \
&& pip install -r requirements.txt \
&& find /usr/local \
\( -type d -a -name test -o -name tests \) \
-o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \
-exec rm -rf '{}' + \
&& runDeps="$( \
scanelf --needed --nobanner --recursive /usr/local \
| awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
| sort -u \
| xargs -r apk info --installed \
| sort -u \
)" \
&& apk add --virtual .rundeps $runDeps \
&& apk del .build-deps
# Copy source code to container
COPY . /app