-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
98 lines (81 loc) · 2.84 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
88
89
90
91
92
93
94
95
96
97
98
FROM python:3.7-alpine
# Install required packages and remove the apt packages cache when done.
#apk update && apk upgrade && \
RUN apk add --update build-base ca-certificates make g++ gcc libxslt-dev
RUN apk add \
libjpeg \
git \
zlib \
zlib-dev \
libwebp \
openjpeg \
jpeg-dev \
postgresql-libs \
postgresql-dev \
ncurses-dev \
readline-dev \
bash \
libffi-dev \
nginx \
postgresql-client \
supervisor
################################################################################
# устанавливаем парочку полезных утилит
RUN pip install ipython pgcli
RUN pip install uwsgi
# Install python 3.5 and pip3
#RUN apt-get install -y lib32ncurses5-dev build-essential libssl-dev libffi-dev python3
#RUN apt-get install -y python3-dev python3-pip libblas-dev libatlas-base-dev
RUN python -V
RUN python3 -V
ENV PYTHONUNBUFFERED 1
################################################################################
# создание служебных каталогов
# создание служебных каталогов
RUN mkdir -p /root/.ssh \
/var/www/run \
/var/www/app \
/var/www/env \
/var/www/media \
/var/www/static \
/var/www/log
################################################################################
# обрабатываемые ENTRYPOINT-ом пременные
ENV DB_BACKEND="" \
DB_HOST="" \
DB_PORT="" \
DB_USER="" \
DB_PASS="" \
DB_NAME="" \
CREATE_NEW_DB=0 \
INIT_TEST_DATA=0 \
#
VIRTUAL_HOST="" \
# логин/пароль, которыми закрывается сайт
HTTP_BASIC="" \
HTTP_BASIC_USER="" \
HTTP_BASIC_PASS=""
WORKDIR /var/www/app
################################################################################
# объявление аргументов, необходимых для доступа к репам
# если хоть одна из них изменится - все дальнейшие слои будут пересобраны
ARG HGRC
ARG SSH_PRIVATE_KEY
ARG SSH_CONFIG
ARG SSH_KNOWN_HOSTS
################################################################################
# установка зависимостей приложения
COPY /project/requirements /var/www/app/requirements
COPY /project/requirements.txt /var/www/app/requirements.txt
RUN pip install -r requirements.txt
COPY .add/supervisor-app.conf /etc/supervisor/conf.d/
COPY .add/uwsgi.ini /var/www/env/uwsgi.ini
COPY .add/uwsgi_params /var/www/env/uwsgi_params
COPY .add/nginx.conf /etc/nginx/
COPY .add/nginx-app.conf /etc/nginx/conf.d/
RUN rm /etc/nginx/conf.d/default.conf
COPY .add/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./project /var/www/app
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["supervisord", "-n", "-c", "/etc/supervisor/conf.d/supervisor-app.conf"]
EXPOSE 80