inspircd / docker

InspIRCd Docker image
https://hub.docker.com/r/inspircd/inspircd-docker
MIT License
120 stars 42 forks source link

Add arm64 image build to github action #120

Closed kaitlinsm closed 3 years ago

kaitlinsm commented 3 years ago

Checklist

Implementation: Switched build system to use Docker BuildX, allowing targeting of multi-arch docker images. Currently only building arm64 and amd64 arch images, but it might be good to add other ARM architectures if anyone wants to run containerised on an older Raspberry Pi.

Tests: Build process tested against my own Docker repo. I've assumed that the repo secrets DOCKER_PASSWORD and DOCKER_USERNAME are the login details for the inspircd/inspircd-docker Docker Hub repo, and I've made sure that the build works pushing to my Docker Hub. I've verified that the INSP_VERSION env var is respected and added to the BuildX args, so it definitely pulls the correct tagged version of the inspircd source. Can't really test this bit as it's the GitHub actions build script...

Docs: Don't think any explicit docs are needed. My testing on my own multi-arch k8s cluster shows that the images can be happily used on whatever host, and image pulls will select the correct architecture for the host automatically.

Caveats: Build time of the GitHub build action is quite long, increasing from ~10mins to ~50mins. I've run a test build on my Raspbery Pi 4, and the build time on that system is not far off that upper ballpark. I've had a look at the caching of the docker /build-publish step, and I don't think it's likely to help much seeing as this image only gets built once in a while.

Merging: If this PR is merged, then the build action will kick off, and it will REPLACE all currently tagged images in the docker hub repo - so the current AMD64 images tagged 3/3.10/3.10.0/latest will be replaced. Not sure it'll be a problem, but just something to be aware of.