This repository has been archived by the owner on Jun 27, 2021. It is now read-only.
generated from nicholaswilde/docker-template
-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile
87 lines (86 loc) · 2.33 KB
/
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
FROM ubuntu:18.04 as dl
ARG VERSION
ARG CHECKSUM
ARG FILENAME="${VERSION}.tar.gz"
WORKDIR /tmp
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
wget=1.19.4-1ubuntu2.2 && \
echo "**** download app ****" && \
mkdir /app && \
wget -q --no-check-certificate "https://github.com/babybuddy/babybuddy/archive/${FILENAME}" && \
echo "${CHECKSUM} ${FILENAME}" | sha256sum -c && \
tar -xvf "${FILENAME}" --strip-components 1 -C /app
WORKDIR /app
FROM python:3.7.10-slim-buster
ARG BUILD_DATE
ARG VERSION
# hadolint ignore=DL3048
LABEL build_version="Version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="nicholaswilde"
ENV PYTHONUNBUFFERED 1
ENV PACKAGES=""
WORKDIR /app
COPY --from=dl [ \
"/app/Pipfile", \
"/app/manage.py", \
"/app/etc/gunicorn.py", \
"./" \
]
COPY --from=dl ["/app/api/", "./api"]
COPY --from=dl ["/app/babybuddy/", "./babybuddy"]
COPY --from=dl ["/app/core/", "./core"]
COPY --from=dl ["/app/dashboard/", "./dashboard"]
COPY --from=dl ["/app/reports/", "./reports"]
COPY --from=dl ["/app/static/", "./static"]
COPY --from=dl ["/app/locale/", "./locale"]
COPY ["./entrypoint.sh", "/app"]
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN \
echo "**** create abc user and make our folders ****" && \
useradd -u 911 -U -d /config -s /bin/false abc && \
usermod -G users abc && \
mkdir -p \
./data \
./media \
/config \
/defaults && \
chown -R abc:abc \
/config \
/defaults \
/app && \
chmod +x ./entrypoint.sh && \
echo "**** install app ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
libjpeg-dev=1:1.5.2-2+deb10u1 \
libjpeg62-turbo=1:1.5.2-2+deb10u1 \
libpq-dev=11.12-0+deb10u1 \
build-essential=12.6 \
zlib1g-dev=1:1.2.11.dfsg-1 \
python3-mysqldb=1.3.10-2 && \
pip install --no-cache-dir --upgrade \
pipenv==2020.11.15 \
gunicorn==20.0.4 \
setuptools==53.0.0 \
whitenoise==5.2.0 && \
pipenv lock && \
pipenv install --deploy --system && \
echo "**** cleanup ****" && \
apt-get autoremove -y \
build-essential && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/ \
/var/tmp/*
VOLUME \
/app/data \
/app \
/app/media
EXPOSE 8000
USER abc
ENTRYPOINT ["/app/entrypoint.sh"]