# syntax = docker/dockerfile:1.3 # Use 3.15 for Core since it has Python 3.9 FROM alpine:3.19 # Set the commits that we are building. ARG CORE_REF ARG MM3_HK_REF #Install all required packages, add user for executing mailman and set execution #rights for startup script RUN --mount=type=cache,target=/root/.cache \ apk update \ && apk add --no-cache --virtual build-deps gcc python3-dev musl-dev \ postgresql-dev git libffi-dev g++ \ && apk add --no-cache bash su-exec postgresql-client mysql-client \ curl python3 py3-pip linux-headers py-cryptography mariadb-connector-c tzdata \ && python3 -m pip install -U --break-system-packages psycopg2 pymysql setuptools wheel \ && python3 -m pip install --break-system-packages \ git+https://gitlab.com/mailman/mailman \ git+https://gitlab.com/mailman/mailman-hyperkitty \ gunicorn==19.9.0 \ && apk del build-deps \ && adduser -S mailman #Add startup script to container COPY docker-entrypoint.sh /usr/local/bin/ # Change the working directory. WORKDIR /opt/mailman #Expose the ports for the api (8001) and lmtp (8024) EXPOSE 8001 8024 # Set the default configuration file. ENV MAILMAN_CONFIG_FILE /etc/mailman.cfg ENTRYPOINT ["docker-entrypoint.sh"] CMD ["master"]