Skip to content

feat: Add multiplatform container image support (amd64, arm64, s390x)#1520

Merged
kevalmahajan merged 3 commits intomainfrom
multi-arch-builds
Dec 3, 2025
Merged

feat: Add multiplatform container image support (amd64, arm64, s390x)#1520
kevalmahajan merged 3 commits intomainfrom
multi-arch-builds

Conversation

@crivetimihai
Copy link
Copy Markdown
Member

Add comprehensive multiplatform Docker build support with:

  • New docker-multiplatform.yml workflow:

    • Parallel native builds for amd64 (ubuntu-latest) and arm64 (ubuntu-24.04-arm)
    • QEMU emulation for s390x on ubuntu-latest
    • Multiplatform manifest creation with buildx imagetools
    • Security scanning (Trivy, Grype, Syft SBOM) on amd64
    • Cosign keyless signing for all architectures
  • Updated docker-release.yml:

    • Use buildx imagetools create for manifest handling
    • Preserves all architecture variants when tagging releases
  • Updated ibm-cloud-code-engine.yml:

    • Explicit --platform linux/amd64 flag for consistent builds
  • Updated Containerfile.lite for multiplatform compatibility:

    • Use ubi10-minimal as runtime base instead of scratch
    • Eliminates dnf --installroot which fails under QEMU emulation
    • Uses microdnf for runtime package installation
    • Maintains security scanning compatibility (RPM database preserved)
  • Enhanced Makefile targets:

    • container-build-multi: Build multiplatform image locally
    • container-inspect-manifest: Inspect multiplatform manifest in registry

Closes #80

@github-advanced-security
Copy link
Copy Markdown

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

crivetimihai and others added 3 commits December 3, 2025 14:35
Add comprehensive multiplatform Docker build support with:

- New docker-multiplatform.yml workflow:
  - Parallel native builds for amd64 (ubuntu-latest) and arm64 (ubuntu-24.04-arm)
  - QEMU emulation for s390x on ubuntu-latest
  - Multiplatform manifest creation with buildx imagetools
  - Security scanning (Trivy, Grype, Syft SBOM) on amd64
  - Cosign keyless signing for all architectures

- Updated docker-release.yml:
  - Use buildx imagetools create for manifest handling
  - Preserves all architecture variants when tagging releases

- Updated ibm-cloud-code-engine.yml:
  - Explicit --platform linux/amd64 flag for consistent builds

- Updated Containerfile.lite for multiplatform compatibility:
  - Use ubi10-minimal as runtime base instead of scratch
  - Eliminates dnf --installroot which fails under QEMU emulation
  - Uses microdnf for runtime package installation
  - Maintains security scanning compatibility (RPM database preserved)

- Enhanced Makefile targets:
  - container-build-multi: Build multiplatform image locally
  - container-inspect-manifest: Inspect multiplatform manifest in registry

Closes #80

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>
* feat: Add multiplatform container image support (amd64, arm64, s390x)

Add comprehensive multiplatform Docker build support with:

- New docker-multiplatform.yml workflow:
  - Parallel native builds for amd64 (ubuntu-latest) and arm64 (ubuntu-24.04-arm)
  - QEMU emulation for s390x on ubuntu-latest
  - Multiplatform manifest creation with buildx imagetools
  - Security scanning (Trivy, Grype, Syft SBOM) on amd64
  - Cosign keyless signing for all architectures

- Updated docker-release.yml:
  - Use buildx imagetools create for manifest handling
  - Preserves all architecture variants when tagging releases

- Updated ibm-cloud-code-engine.yml:
  - Explicit --platform linux/amd64 flag for consistent builds

- Updated Containerfile.lite for multiplatform compatibility:
  - Use ubi10-minimal as runtime base instead of scratch
  - Eliminates dnf --installroot which fails under QEMU emulation
  - Uses microdnf for runtime package installation
  - Maintains security scanning compatibility (RPM database preserved)

- Enhanced Makefile targets:
  - container-build-multi: Build multiplatform image locally
  - container-inspect-manifest: Inspect multiplatform manifest in registry

Closes #80

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* Include missing Container.scratch file in MANIFEST.in (#1529)

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>

* Update documentation for multi-architecture image use

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>

* Revert unneeded changes in one part of the doc.

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>

* Add recursive signing to cosign step.

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>
Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
@kevalmahajan kevalmahajan self-requested a review December 3, 2025 09:09
@kevalmahajan kevalmahajan marked this pull request as ready for review December 3, 2025 09:16
@kevalmahajan kevalmahajan merged commit 4d15916 into main Dec 3, 2025
52 checks passed
@kevalmahajan kevalmahajan deleted the multi-arch-builds branch December 3, 2025 09:17
kcostell06 pushed a commit to kcostell06/mcp-context-forge that referenced this pull request Feb 24, 2026
…IBM#1520)

* feat: Add multiplatform container image support (amd64, arm64, s390x)

Add comprehensive multiplatform Docker build support with:

- New docker-multiplatform.yml workflow:
  - Parallel native builds for amd64 (ubuntu-latest) and arm64 (ubuntu-24.04-arm)
  - QEMU emulation for s390x on ubuntu-latest
  - Multiplatform manifest creation with buildx imagetools
  - Security scanning (Trivy, Grype, Syft SBOM) on amd64
  - Cosign keyless signing for all architectures

- Updated docker-release.yml:
  - Use buildx imagetools create for manifest handling
  - Preserves all architecture variants when tagging releases

- Updated ibm-cloud-code-engine.yml:
  - Explicit --platform linux/amd64 flag for consistent builds

- Updated Containerfile.lite for multiplatform compatibility:
  - Use ubi10-minimal as runtime base instead of scratch
  - Eliminates dnf --installroot which fails under QEMU emulation
  - Uses microdnf for runtime package installation
  - Maintains security scanning compatibility (RPM database preserved)

- Enhanced Makefile targets:
  - container-build-multi: Build multiplatform image locally
  - container-inspect-manifest: Inspect multiplatform manifest in registry

Closes IBM#80

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* Include missing Container.scratch file in MANIFEST.in (IBM#1529)

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>

* Bh/multi arch builds 2 (IBM#1532)

* feat: Add multiplatform container image support (amd64, arm64, s390x)

Add comprehensive multiplatform Docker build support with:

- New docker-multiplatform.yml workflow:
  - Parallel native builds for amd64 (ubuntu-latest) and arm64 (ubuntu-24.04-arm)
  - QEMU emulation for s390x on ubuntu-latest
  - Multiplatform manifest creation with buildx imagetools
  - Security scanning (Trivy, Grype, Syft SBOM) on amd64
  - Cosign keyless signing for all architectures

- Updated docker-release.yml:
  - Use buildx imagetools create for manifest handling
  - Preserves all architecture variants when tagging releases

- Updated ibm-cloud-code-engine.yml:
  - Explicit --platform linux/amd64 flag for consistent builds

- Updated Containerfile.lite for multiplatform compatibility:
  - Use ubi10-minimal as runtime base instead of scratch
  - Eliminates dnf --installroot which fails under QEMU emulation
  - Uses microdnf for runtime package installation
  - Maintains security scanning compatibility (RPM database preserved)

- Enhanced Makefile targets:
  - container-build-multi: Build multiplatform image locally
  - container-inspect-manifest: Inspect multiplatform manifest in registry

Closes IBM#80

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* Include missing Container.scratch file in MANIFEST.in (IBM#1529)

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>

* Update documentation for multi-architecture image use

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>

* Revert unneeded changes in one part of the doc.

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>

* Add recursive signing to cosign step.

Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>
Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Brian Hussey <brian.hussey@ie.ibm.com>
Co-authored-by: Brian Hussey <brian.hussey@ie.ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE][BUILD]: Publish multi-architecture container including ARM64

4 participants