WIP #731: Build images for linux/amd64 and linux/arm64
I understand Circle CI is the CI of choice. I did not have a Circle CI account. I know little about Circle CI. I could not get the Circle CI changes from #731 to work. Tried to build an ARM image with Circle CI and failed.
Looks like PR #741 was closed with unmerged commits? And I do not see any ARM images on DockerHub.
This PR adds a GitHub workflow that will create docker images for
- mailman-core
- mailman-web
- postorius
For
- linux/amd64
- linux/arm64
using
- alpine3
- alpine3.20
- alpine3.21
- alpine3.21.3
I think that covers all the base images I saw in the FROM in the Dockerfiles.
This GitHub strategy matrix creates 12 docker images, they can be viewed at My Hub.
Looking at the build.sh only the Dockerfile.dev is used?
I followed the variable naming conventions.
You can change the
-
TAG_NSin .github/workflows/docker-build.yml -
alpine_versionin .github/workflows/docker-build.yml -
platformsin .github/actions/build-action/action.yml
That's for this, I've been meaning to move other Github CI but haven't had bandwidth to make the change.
The exiting CI flow tests images by starting them up. See https://github.com/maxking/docker-mailman/blob/main/tests/test.sh. We would need to do that before we upload built images.
Also, does the parameterized version of alpine allow for dependabot to update them? If not, let's keep the existing one since I'd like to have automated PRs upgrading base OS and packages.
Finally, Dockerfile.dev is used for rolling images only. Dockerfile is used when a tag is pushed so we can cut stable releases from the tags.