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.
54 lines
1.7 KiB
Docker
54 lines
1.7 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 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 \
|
|
postgresql-dev mariadb-dev mariadb-connector-c python3-dev libffi-dev git cargo rust \
|
|
&& apk add --no-cache --virtual .mailman-rundeps bash sassc \
|
|
postgresql-client mysql-client py3-mysqlclient curl mailcap \
|
|
python3 py3-pip 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 \
|
|
uwsgi \
|
|
'psycopg2<2.9' \
|
|
dj-database-url \
|
|
mysqlclient \
|
|
typing \
|
|
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"]
|