-
Notifications
You must be signed in to change notification settings - Fork 134
/
Copy pathDockerfile
79 lines (67 loc) · 2.11 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
FROM ubuntu:20.04
# Silence configuration prompts
ENV DEBIAN_FRONTEND noninteractive
ENV PYTHONUNBUFFERED 1
ENV DJANGO_SETTINGS_MODULE onadata.settings.docker
# Install service dependencies
# hadolint ignore=DL3008
RUN apt-get update -q &&\
apt-get install -y --no-install-recommends software-properties-common \
binutils \
libproj-dev \
gdal-bin \
memcached \
libmemcached-dev \
build-essential \
supervisor \
python3.9 \
python3-dev \
python3-pip \
python3-setuptools \
git \
libssl-dev \
libpq-dev \
gfortran \
libatlas-base-dev \
libjpeg-dev \
libxml2-dev \
libxslt1-dev \
libpython3.9-dev \
zlib1g-dev \
ghostscript \
python3-celery \
python3-sphinx \
pkg-config \
gcc \
automake \
libtool \
openjdk-11-jre-headless \
libpcre3 \
libpcre3-dev \
locales \
netcat && \
apt-get -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' dist-upgrade &&\
rm -rf /var/lib/apt/lists/*
# Generate and set en_US.UTF-8 locale
RUN locale-gen en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ENV LC_CTYPE en_US.UTF-8
RUN dpkg-reconfigure locales
# Create OnaData user and add to tty group
RUN useradd -G tty -m onadata
# Make app directory
RUN mkdir -p /srv/onadata && chown -R onadata:onadata /srv
# Copy local codebase
COPY . /srv/onadata
# Install service requirements
# hadolint ignore=DL3013
RUN python3.9 -m pip install --no-cache-dir -U pip && \
python3.9 -m pip install --no-cache-dir -r /srv/onadata/requirements/base.pip && \
python3.9 -m pip install --no-cache-dir -r /srv/onadata/requirements/s3.pip && \
python3.9 -m pip install --no-cache-dir -r /srv/onadata/requirements/ses.pip && \
python3.9 -m pip install --no-cache-dir -r /srv/onadata/requirements/azure.pip && \
python3.9 -m pip install --no-cache-dir uwsgitop django-silk
WORKDIR /srv/onadata
EXPOSE 8000
USER onadata
CMD ["/usr/local/bin/uwsgi", "--ini", "/srv/onadata/uwsgi.ini"]