Provide Docker images for multiple architectures

Several SoSy-Lab projects inherit the CI pipeline configuration from java-project-template, which provides essential setup files and prebuilt Docker images for the default architecture (x64). However, these images currently lack support for other architectures, limiting portability across different environments, like arm64.

To address this, we aim to build multi-architecture Docker images using a manifest list, which allows a single image tag to reference multiple architecture-specific variants. This ensures that projects inheriting from java-project-template can seamlessly pull the correct image for their platform, whether x64, arm64, and maybe others, without requiring separate tags or additional configuration.

Benefits of Multi-Architecture Support:

  • Seamless Inheritance: Downstream projects can continue inheriting CI configurations without modification, regardless of their target architecture.
  • Unified Image Management: A single registry tag can serve multiple platforms, simplifying versioning and updates.
  • Broader Compatibility: Enables deployment across diverse environments, including ARM-based cloud instances and embedded systems.

Goal of this Issue:

  • Provide multi-architecture Docker images in the registry.
  • Develop build scripts that run on SoSy-Lab’s infrastructure.
  • Test the approach on a dependent project, such as JavaSMT.

Relevant Links:

Edited by Karlheinz Friedberger
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information