Files
OSIT-Mailman3/web/Dockerfile
Patrick Georgi 561abf6fee Use standard alpine image as base for mailman-web
This way we can depend on alpine's python3 package which is binary
compatible with the rest of the python packages in the distribution.

This requires spelling out python3 explicitly in several places since
alpine still defaults to python 2 for /usr/bin/python.
2019-01-17 00:20:26 +01:00

49 lines
1.4 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 \
&& 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 \
&& 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