blob: 032ea5efd8c4d9e2bf49e48de7e32fb489c2c70a (
plain)
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
|
FROM python:3.8-alpine AS builder
LABEL maintainer = "Navan Chauhan <navanchauhan@gmail.com>" \
org.label-schema.name="SaaS-in-a-Flask" \
org.label-schema.description="https://web.navan.dev/SaaS-in-a-Flask"
EXPOSE 5000
WORKDIR /saas-in-a-flask
COPY simple-requirements.txt api.py ./
RUN apk add --no-cache --virtual .build-deps \
build-base \
cairo \
cairo-dev \
cargo \
gcc \
libffi-dev \
openssl-dev \
py-cffi \
python3-dev \
rust \
&& pip install -r simple-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 ./app ./app
RUN FLASK_APP=app flask database create
RUN FLASK_APP=app flask database admin-create
CMD gunicorn -w 4 api:app -k uvicorn.workers.UvicornWorker -b "0.0.0.0:5000"
|