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.
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
andDOCKER_USERNAME
are the login details for theinspircd/inspircd-docker
Docker Hub repo, and I've made sure that the build works pushing to my Docker Hub. I've verified that theINSP_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.