Files
OSIT-Mailman3/web/Dockerfile
Patrick Georgi 51a5485c4a Add xapian to the mailman-web container
Whoosh completely breaks down on 4GB of mail archives, so provide xapian
as an alternative. It's not hooked up automatically, but can be enabled
in the config files.

Related to issue #97.
2019-01-17 00:20:56 +01:00

50 lines
1.5 KiB
Docker

FROM alpine:3.8
MAINTAINER Abhilash Raj
# Add needed files for uwsgi server + settings for django
COPY mailman-web /opt/mailman-web
# Add startup script to container
COPY docker-entrypoint.sh /usr/local/bin/
# Install packages and dependencies for postorius and hyperkitty Add user for
# executing apps, change ownership for uwsgi+django files and set execution
# rights for management script
RUN set -ex \
&& apk add --no-cache --virtual .build-deps gcc libc-dev linux-headers \
postgresql-dev mariadb-dev python3-dev \
&& apk add --no-cache --virtual .mailman-rundeps bash sassc \
postgresql-client mysql-client py-mysqldb curl mailcap \
python3 py3-setuptools xapian-core xapian-bindings-python3 \
&& python3 -m pip install -U django==2.1.5 pip \
&& python3 -m pip install mailmanclient==3.2.1 \
postorius==1.2.2 \
hyperkitty==1.2.1 \
django-mailman3==1.2.0 \
whoosh \
uwsgi \
psycopg2 \
dj-database-url \
mysqlclient \
typing \
xapian-haystack \
&& apk del .build-deps \
&& addgroup -S mailman \
&& adduser -S -G mailman mailman \
&& chown -R mailman /opt/mailman-web/ \
&& chmod u+x /opt/mailman-web/manage.py
WORKDIR /opt/mailman-web
# Expose port 8000 for http and port 8080 for uwsgi
# (see web/mailman-web/uwsgi.ini#L2-L4)
EXPOSE 8000 8080
# Use stop signal for uwsgi server
STOPSIGNAL SIGINT
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["uwsgi", "--ini", "/opt/mailman-web/uwsgi.ini"]
ENV PYTHONPATH=/usr/lib/python3.6/site-packages