We previously used the get_latest_ref.py script to fetch the latest commit sha for each project that passed CI correctly. Although, that has some challenges due to requiring Gitlab Auth token. It causes issues with building PRs and we don't want to share the Gitlab token with PR authors. Instead, this commit removes the code and sha references and Instead simply uses the primary master branch from each project to build the rolling release container image.
60 lines
2.0 KiB
Docker
60 lines
2.0 KiB
Docker
# syntax = docker/dockerfile:1.3
|
|
FROM alpine:3.12
|
|
|
|
# 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/
|
|
|
|
ARG POSTORIUS_REF
|
|
ARG HYPERKITTY_REF
|
|
ARG DJ_MM3_REF
|
|
ARG CLIENT_REF
|
|
|
|
# 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 git \
|
|
postgresql-dev mariadb-dev mariadb-connector-c python3-dev libffi-dev openldap-dev cargo rust \
|
|
&& apk add --no-cache --virtual .mailman-rundeps bash sassc pcre-dev \
|
|
python3 py3-pip postgresql-client mysql-client py3-mysqlclient \
|
|
curl mailcap xapian-core xapian-bindings-python3 libffi gettext py-cryptography \
|
|
&& python3 -m pip install -U pip setuptools wheel \
|
|
&& python3 -m pip install -U \
|
|
git+https://gitlab.com/mailman/mailmanclient \
|
|
git+https://gitlab.com/mailman/postorius \
|
|
git+https://gitlab.com/mailman/hyperkitty \
|
|
whoosh \
|
|
uwsgi \
|
|
'psycopg2<2.9' \
|
|
dj-database-url \
|
|
mysqlclient \
|
|
xapian-haystack \
|
|
django-auth-ldap \
|
|
python-memcached \
|
|
diskcache \
|
|
django-utils-six \
|
|
&& python3 -m pip install -U 'Django<3.2' \
|
|
&& python3 -m pip install -U \
|
|
git+https://gitlab.com/mailman/django-mailman3@${DJ_MM3_REF} \
|
|
&& 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"]
|