12d4355385
These images have a number of issues we've identified and worked around. The current iteration of this change is essentially identical to upstream but with a minor tweak to allow the latest mailman version, and adjusts the paths for hyperkitty and postorius URLs to match those in the upstream mailman-web codebase, but doesn't try to address the other items. However, we should consider moving our fixes from ansible into the docker images where possible and upstream those updates. Unfortunately upstream hasn't been super responsive so far hence this fork. For tracking purposes here are the issues/PRs we've already filed upstream: https://github.com/maxking/docker-mailman/pull/552 https://github.com/maxking/docker-mailman/issues/548 https://github.com/maxking/docker-mailman/issues/549 https://github.com/maxking/docker-mailman/issues/550 Change-Id: I3314037d46c2ef2086a06dea0321d9f8cdd35c73
53 lines
1.6 KiB
Docker
53 lines
1.6 KiB
Docker
# syntax = docker/dockerfile:1.3
|
|
FROM alpine:3.16.2
|
|
|
|
# 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/
|
|
# Add requirements file.
|
|
COPY requirements.txt /tmp/
|
|
|
|
# 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 --mount=type=cache,target=/root/.cache \
|
|
set -ex \
|
|
&& apk add --no-cache --virtual .build-deps gcc libc-dev linux-headers \
|
|
postgresql-dev mariadb-dev mariadb-connector-c python3-dev libffi-dev openldap-dev cargo rust \
|
|
&& apk add --no-cache --virtual .mailman-rundeps bash sassc \
|
|
postgresql-client mysql-client py3-mysqlclient curl mailcap gettext \
|
|
python3 py3-pip xapian-core xapian-bindings-python3 libffi pcre-dev py-cryptography \
|
|
&& python3 -m pip install -U 'Django<4.1' pip setuptools wheel \
|
|
&& pip install -r /tmp/requirements.txt \
|
|
whoosh \
|
|
uwsgi \
|
|
'psycopg2<2.9' \
|
|
dj-database-url \
|
|
mysqlclient \
|
|
typing \
|
|
xapian-haystack \
|
|
django-auth-ldap \
|
|
python-memcached \
|
|
diskcache \
|
|
django-utils-six \
|
|
tzdata \
|
|
&& 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"]
|