This module makes it possible to do access control & logging based on client's real IP address, rather than the internal IP address of HaProxy.
66 lines
1.9 KiB
Docker
Executable File
66 lines
1.9 KiB
Docker
Executable File
FROM armadillica/pillar_py:3.6
|
|
LABEL maintainer="Sybren A. Stüvel <sybren@blender.studio>"
|
|
|
|
RUN set -ex; \
|
|
apt-get update; \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -qy \
|
|
-o APT::Install-Recommends=false -o APT::Install-Suggests=false \
|
|
git \
|
|
apache2 \
|
|
libapache2-mod-xsendfile \
|
|
libjpeg8 \
|
|
libtiff5 \
|
|
ffmpeg \
|
|
rsyslog logrotate \
|
|
nano vim-tiny curl; \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN ln -s /usr/bin/vim.tiny /usr/bin/vim
|
|
|
|
ENV APACHE_RUN_USER www-data
|
|
ENV APACHE_RUN_GROUP www-data
|
|
ENV APACHE_LOG_DIR /var/log/apache2
|
|
ENV APACHE_PID_FILE /var/run/apache2.pid
|
|
ENV APACHE_RUN_DIR /var/run/apache2
|
|
ENV APACHE_LOCK_DIR /var/lock/apache2
|
|
|
|
RUN mkdir -p $APACHE_RUN_DIR $APACHE_LOCK_DIR $APACHE_LOG_DIR
|
|
|
|
ADD wheelhouse /data/wheelhouse
|
|
RUN pip3 install --no-index --find-links=/data/wheelhouse -r /data/wheelhouse/requirements.txt
|
|
|
|
VOLUME /data/config
|
|
VOLUME /data/storage
|
|
VOLUME /var/log
|
|
|
|
ENV USE_X_SENDFILE True
|
|
|
|
EXPOSE 80
|
|
EXPOSE 5000
|
|
|
|
ADD apache/remoteip.conf /etc/apache2/mods-available/
|
|
ADD apache/wsgi-py36.* /etc/apache2/mods-available/
|
|
RUN a2enmod remoteip & a2enmod rewrite && a2enmod wsgi-py36
|
|
|
|
ADD apache/apache2.conf /etc/apache2/apache2.conf
|
|
ADD apache/000-default.conf /etc/apache2/sites-available/000-default.conf
|
|
ADD apache/logrotate.conf /etc/logrotate.d/apache2
|
|
ADD *.sh /
|
|
|
|
# Remove some empty top-level directories we won't use anyway.
|
|
RUN rmdir /media /home 2>/dev/null || true
|
|
|
|
# This file includes some useful commands to have in the shell history
|
|
# for easy access.
|
|
ADD bash_history /root/.bash_history
|
|
|
|
ENTRYPOINT /docker-entrypoint.sh
|
|
|
|
# Add the most-changing files as last step for faster rebuilds.
|
|
ADD config_local.py /data/git/blender-cloud/
|
|
ADD staging /data/git
|
|
RUN python3 -c "import re, secrets; \
|
|
f = open('/data/git/blender-cloud/config_local.py', 'a'); \
|
|
h = re.sub(r'[_.~-]', '', secrets.token_urlsafe())[:8]; \
|
|
print(f'STATIC_FILE_HASH = {h!r}', file=f)"
|