You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.0 KiB
102 lines
3.0 KiB
FROM python:2
|
|
ENV PYTHONUNBUFFERED 1
|
|
|
|
ENV NGINX_VERSION="1.12.0" \
|
|
NGINX_OPTS="--with-http_ssl_module \
|
|
--with-http_gzip_static_module \
|
|
--prefix=/usr/share/nginx \
|
|
--sbin-path=/usr/sbin/nginx \
|
|
--conf-path=/etc/nginx/nginx.conf \
|
|
--pid-path=/var/run/nginx.pid \
|
|
--http-log-path=/var/log/nginx/access.log \
|
|
--error-log-path=/var/log/nginx/error.log \
|
|
--user=www-data \
|
|
--group=www-data \
|
|
--add-module=/tmp/modules/nginx_requestid-master"
|
|
|
|
ENV XAPIAN_VERSION="1.2.21"
|
|
|
|
COPY requirements.txt /opt/app/requirements.txt
|
|
|
|
RUN apt-get update -y && \
|
|
apt-get upgrade -y && \
|
|
apt-get install -y --no-install-recommends apt-utils \
|
|
libxml2 \
|
|
xz-utils \
|
|
uuid-dev \
|
|
python-xapian \
|
|
memcached \
|
|
supervisor \
|
|
cron \
|
|
php5 \
|
|
php5-fpm \
|
|
make && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/* && \
|
|
|
|
pip install --upgrade pip && \
|
|
pip install --no-cache-dir --no-deps -r /opt/app/requirements.txt && \
|
|
|
|
# Download additional nginx modules
|
|
mkdir -p /tmp/modules && \
|
|
cd /tmp/modules && \
|
|
wget -O nginx-requestid.tar.gz https://github.com/hhru/nginx_requestid/archive/master.tar.gz && \
|
|
tar xvzf nginx-requestid.tar.gz && \
|
|
# Download and compile nginx
|
|
cd /tmp && \
|
|
curl -fSL http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz -o nginx-${NGINX_VERSION}.tar.gz && \
|
|
tar xzvf nginx-${NGINX_VERSION}.tar.gz && \
|
|
cd nginx-${NGINX_VERSION} && \
|
|
./configure ${NGINX_OPTS} && \
|
|
make && \
|
|
make install && \
|
|
|
|
# Delete build dependencies after use
|
|
cd /tmp \
|
|
|
|
&& rm -rf \
|
|
modules \
|
|
nginx-${NGINX_VERSION} \
|
|
nginx-${NGINX_VERSION}.tar.gz \
|
|
/var/cache/apt/* \
|
|
/root/.cache \
|
|
|
|
# Patch Djapian
|
|
&& rm /usr/local/lib/python2.7/site-packages/djapian/resultset.py
|
|
|
|
COPY conf/djapian-patch/resultset.py /usr/local/lib/python2.7/site-packages/djapian/resultset.py
|
|
|
|
# Install xapian from source
|
|
RUN cd /tmp && \
|
|
curl -O https://oligarchy.co.uk/xapian/${XAPIAN_VERSION}/xapian-core-${XAPIAN_VERSION}.tar.xz && \
|
|
tar -xvf xapian-core-${XAPIAN_VERSION}.tar.xz && \
|
|
cd xapian-core-${XAPIAN_VERSION} && \
|
|
./configure && \
|
|
make && \
|
|
make install && \
|
|
cd /tmp && \
|
|
curl -O https://oligarchy.co.uk/xapian/${XAPIAN_VERSION}/xapian-bindings-${XAPIAN_VERSION}.tar.xz && \
|
|
tar -xvf xapian-bindings-${XAPIAN_VERSION}.tar.xz && \
|
|
cd xapian-bindings-${XAPIAN_VERSION} && \
|
|
./configure --with-python && \
|
|
make && \
|
|
make install && \
|
|
rm -rf xapian-*
|
|
|
|
ADD . /opt/app
|
|
VOLUME ["/opt/app/public_html"]
|
|
WORKDIR /opt/app
|
|
|
|
# Nginx config
|
|
RUN rm -v /etc/nginx/nginx.conf
|
|
ADD /conf/nginx.conf /etc/nginx/
|
|
|
|
# Add crontab file in the cron directory
|
|
ADD /conf/crontab /etc/cron.d/penfond-cron
|
|
|
|
# Give execution rights on the cron job
|
|
RUN chmod 0644 /etc/cron.d/penfond-cron
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["conf/docker/entrypoint_prod.sh"] |