diff --git a/README.md b/README.md index 133ebf3..d67df98 100644 --- a/README.md +++ b/README.md @@ -89,36 +89,24 @@ $ docker pull docker.io/maxking/mailman-web:rolling $ docker pull docker.io/maxking/mailman-core:rolling ``` -Rolling releases are built with every commit and also re-generated weekly. You +Rolling releases are built with every commit and also re-generated nightly. You can inspect the images to get which commit it was built using: ```bash $ docker inspect --format '{{json .Config.Labels }}' mailman-core | python -m json.tool { - "version.core": "31f434d0", "version.git_commit": "45a4d7805b2b3d0e7c51679f59682d64ba02f05f", - "version.mm3-hk": "c625bfd2" } $ docker inspect --format '{{json .Config.Labels }}' mailman-web | python -m json.tool { - "version.client": "d9e9cb73", - "version.dj-mm3": "72a7d6c4", "version.git_commit": "45a4d7805b2b3d0e7c51679f59682d64ba02f05f", - "version.hyperkitty": "b67ca8a8", - "version.postorius": "73328ad4" } ``` - `version.git_commit` : This is the commit hash of the Dockerfile in the [Github repo](https://github.com/maxking/docker-mailman) -- `version.core`: The commit hash of Mailman Core -- `version.mm3-hk`: The commit hash of Mailman3-hyperkitty plugin. -- `version.client`: The commit hash of Mailman Client. -- `version.hyperkitty`: The commit hash of Hyperkitty. -- `version.postorius`: The commit hash of Postorius. -- `version.dj-mm3`: The commit hash of Django-Mailman3 project. ## Dependencies @@ -414,7 +402,7 @@ smtp_port: $SMTP_PORT configuration: /etc/postfix-mailman.cfg ``` -So, if you need to update the values, you can set `SMTP_HOST`, `SMTP_PORT`, +So, if you need to update the values, you can set `SMTP_HOST`, `SMTP_PORT`, `MM_HOSTNAME` environment variables in `mailman-core` container. Please verify the output for `[mta]` section to ensure that it points to diff --git a/build.sh b/build.sh index 370d621..9d8fe7a 100755 --- a/build.sh +++ b/build.sh @@ -12,49 +12,19 @@ DOCKER=docker if [ "$BUILD_ROLLING" = "yes" ]; then echo "Building rolling releases..." - python3 -m venv venv - source venv/bin/activate - pip install python-gitlab - # Get the latest commit for repositories and set their reference values to be - # used in the development builds. - CORE_REF=$(python get_latest_ref.py mailman/mailman) - CLIENT_REF=$(python get_latest_ref.py mailman/mailmanclient) - POSTORIUS_REF=$(python get_latest_ref.py mailman/postorius) - HYPERKITTY_REF=$(python get_latest_ref.py mailman/hyperkitty) - DJ_MM3_REF=$(python get_latest_ref.py mailman/django-mailman3) - MM3_HK_REF=$(python get_latest_ref.py mailman/mailman-hyperkitty) - # Build the mailman-core image. $DOCKER build -f core/Dockerfile.dev \ - --build-arg CORE_REF=$CORE_REF \ - --build-arg MM3_HK_REF=$MM3_HK_REF \ - --label version.core="$CORE_REF" \ - --label version.mm3-hk="$MM3_HK_REF" \ --label version.git_commit="$COMMIT_ID" \ -t maxking/mailman-core:rolling core/ # Build the mailman-web image. $DOCKER build -f web/Dockerfile.dev \ --label version.git_commit="$COMMIT_ID" \ - --label version.postorius="$POSTORIUS_REF" \ - --label version.hyperkitty="$HYPERKITTY_REF" \ - --label version.client="$CLIENT_REF" \ - --label version.dj-mm3="$DJ_MM3_REF" \ - --build-arg POSTORIUS_REF=$POSTORIUS_REF \ - --build-arg CLIENT_REF=$CLIENT_REF \ - --build-arg HYPERKITTY_REF=$HYPERKITTY_REF \ - --build-arg DJ_MM3_REF=$DJ_MM3_REF \ -t maxking/mailman-web:rolling web/ # build the postorius image. $DOCKER build -f postorius/Dockerfile.dev\ --label version.git_commit="$COMMIT_ID"\ - --label version.postorius="$POSTORIUS_REF" \ - --label version.client="$CLIENT_REF" \ - --label version.dj-mm3="$DJ_MM3_REF" \ - --build-arg POSTORIUS_REF=$POSTORIUS_REF \ - --build-arg CLIENT_REF=$CLIENT_REF \ - --build-arg DJ_MM3_REF=$DJ_MM3_REF \ -t maxking/postorius:rolling postorius/ else echo "Building stable releases..." diff --git a/core/Dockerfile.dev b/core/Dockerfile.dev index 384b170..bb0c0b8 100644 --- a/core/Dockerfile.dev +++ b/core/Dockerfile.dev @@ -18,8 +18,8 @@ RUN --mount=type=cache,target=/root/.cache \ && apk add --no-cache bash su-exec postgresql-client mysql-client curl python3 py3-pip linux-headers py-cryptography mariadb-connector-c \ && python3 -m pip install -U psycopg2 pymysql setuptools wheel \ && python3 -m pip install \ - git+https://gitlab.com/mailman/mailman@${CORE_REF} \ - git+https://gitlab.com/mailman/mailman-hyperkitty@${MM3_HK_REF} \ + git+https://gitlab.com/mailman/mailman \ + git+https://gitlab.com/mailman/mailman-hyperkitty \ gunicorn==19.9.0 \ && apk del build-deps \ && adduser -S mailman diff --git a/get_latest_ref.py b/get_latest_ref.py deleted file mode 100755 index a761d7e..0000000 --- a/get_latest_ref.py +++ /dev/null @@ -1,41 +0,0 @@ -#! /usr/bin/env python -import os -import sys -import gitlab - - -def usage(): - print("{} ") - - -def main(): - if 2 > len(sys.argv) > 3: - usage() - - project_name = sys.argv[1] - if len(sys.argv) > 2: - branch_name = sys.argv[2] - else: - branch_name = 'master' - - gl_token = os.getenv('GITLAB_TOKEN') - if gl_token is None: - print('GITLAB_TOKEN not set!') - exit(1) - gl = gitlab.Gitlab('https://gitlab.com/', gl_token) - - project = gl.projects.get(project_name) - - # Find the last commit in the branch that passed the CI - # successfully and return the reference to it. - for commit in project.commits.list(ref=branch_name): - stasues = list(status.status == 'success' for status in - commit.statuses.list() if status.allow_failure == False) - if len(stasues) == 0: - continue - if all(stasues): - print(commit.short_id) - break - -if __name__ == '__main__': - main() diff --git a/postorius/Dockerfile.dev b/postorius/Dockerfile.dev index 622ccf0..a5d0041 100644 --- a/postorius/Dockerfile.dev +++ b/postorius/Dockerfile.dev @@ -22,8 +22,8 @@ RUN --mount=type=cache,target=/root/.cache \ 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@${CLIENT_REF} \ - git+https://gitlab.com/mailman/postorius@${POSTORIUS_REF} \ + git+https://gitlab.com/mailman/mailmanclient \ + git+https://gitlab.com/mailman/postorius \ uwsgi \ 'psycopg2<2.9' \ dj-database-url \ diff --git a/web/Dockerfile.dev b/web/Dockerfile.dev index 648c980..6d22688 100644 --- a/web/Dockerfile.dev +++ b/web/Dockerfile.dev @@ -23,9 +23,9 @@ RUN --mount=type=cache,target=/root/.cache \ 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@${CLIENT_REF} \ - git+https://gitlab.com/mailman/postorius@${POSTORIUS_REF} \ - git+https://gitlab.com/mailman/hyperkitty@${HYPERKITTY_REF} \ + git+https://gitlab.com/mailman/mailmanclient \ + git+https://gitlab.com/mailman/postorius \ + git+https://gitlab.com/mailman/hyperkitty \ whoosh \ uwsgi \ 'psycopg2<2.9' \