Skip to content

Conversation

@crivetimihai
Copy link
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

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 <[email protected]>
@github-advanced-security
Copy link

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.

org.opencontainers.image.description="MCP Gateway: An enterprise-ready Model Context Protocol Gateway" \
org.opencontainers.image.licenses="Apache-2.0" \
org.opencontainers.image.version="0.9.0"
RUN echo 'app:x:1001:0:app:/app:/sbin/nologin' >> /etc/passwd

Check notice

Code scanning / Hadolint

Multiple consecutive RUN instructions. Consider consolidation. Note

Multiple consecutive RUN instructions. Consider consolidation.
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 Request]: Publish a multi-architecture container (including ARM64) support

2 participants