feat(build): create multiplatform image#322
Conversation
6c1c6c0 to
069eec4
Compare
|
Thank you, that's awesome! Could you also please take a look at the Will review, test and merge this PR after the |
069eec4 to
735b8eb
Compare
|
There seems to be a certificate problem within the arm64 build. I must look into it further. |
32481fd to
cc64d21
Compare
|
It appearch that the builder stage doesn't work properly for ARM64 setup. The surface error is about missing What's strange is that everything builds just fine on my local machine (M1). I don't think I'll be able to resolve it myself without large changes in the containerfile but that might break some other functionality I am unaware of. |
cc64d21 to
954c962
Compare
|
Need to look at this in context of #80 |
Signed-off-by: Tomas Pilar <thomas7pilar@gmail.com>
954c962 to
367958a
Compare
|
Reviewing. |
## 🚀 Multiplatform Docker Support Implementation ### Core Changes: - ✅ **Containerfile.lite**: Fixed ARM64 compatibility issues - Changed SHELL from /bin/bash to /bin/sh for ARM64 UBI compatibility - Explicitly install bash in builder stage - Added --setopt=skip_if_unavailable=1 for robust ARM64 builds - ✅ **GitHub Actions Workflows**: Updated for multiplatform builds - docker-image.yml: Added --platform linux/amd64,linux/arm64 support - docker-release.yml: Updated to use docker buildx imagetools for manifest lists - ibm-cloud-code-engine.yml: Added multiplatform build support - ✅ **Makefile**: Enhanced with multiplatform build targets - container-build-multi: Build and push multiplatform images - container-build-multi-local: Local multiplatform builds for testing - Added proper buildx builder configuration - ✅ **Documentation**: Comprehensive testing and implementation guide - MULTIPLATFORM-DOCKER-SUPPORT.md: Complete testing documentation - test-multiplatform.yml: Workflow for manual testing ### Key Features: - 🏗️ Multi-platform builds: linux/amd64,linux/arm64 - 🔧 ARM64 compatibility fixes for UBI base images - 🚀 CI/CD integration with all Docker workflows - 📚 Comprehensive testing documentation ### Testing Results: - ✅ Local ARM64 builds successful on Apple Silicon - ✅ FastAPI application loads correctly - ✅ All dependencies properly installed - ✅ GitHub Actions workflows validated ### Addresses: - Closes #80: Feature Request for multi-architecture container support - Addresses PR #322: Create multiplatform image implementation Ready for production deployment with full ARM64 and AMD64 support.
|
Merged separate PR which may address this - if still an issue please reopen a new PR. |
- ✅ **Containerfile.lite**: Fixed ARM64 compatibility issues - Changed SHELL from /bin/bash to /bin/sh for ARM64 UBI compatibility - Explicitly install bash in builder stage - Added --setopt=skip_if_unavailable=1 for robust ARM64 builds - ✅ **GitHub Actions Workflows**: Updated for multiplatform builds - docker-image.yml: Added --platform linux/amd64,linux/arm64 support - docker-release.yml: Updated to use docker buildx imagetools for manifest lists - ibm-cloud-code-engine.yml: Added multiplatform build support - ✅ **Makefile**: Enhanced with multiplatform build targets - container-build-multi: Build and push multiplatform images - container-build-multi-local: Local multiplatform builds for testing - Added proper buildx builder configuration - ✅ **Documentation**: Comprehensive testing and implementation guide - MULTIPLATFORM-DOCKER-SUPPORT.md: Complete testing documentation - test-multiplatform.yml: Workflow for manual testing - 🏗️ Multi-platform builds: linux/amd64,linux/arm64 - 🔧 ARM64 compatibility fixes for UBI base images - 🚀 CI/CD integration with all Docker workflows - 📚 Comprehensive testing documentation - ✅ Local ARM64 builds successful on Apple Silicon - ✅ FastAPI application loads correctly - ✅ All dependencies properly installed - ✅ GitHub Actions workflows validated - Closes #80: Feature Request for multi-architecture container support - Addresses PR #322: Create multiplatform image implementation Ready for production deployment with full ARM64 and AMD64 support.
Signed-off-by: Tomas Pilar thomas7pilar@gmail.com
Unfortunately, one can't simply enable build multi-platform image without pushing it. This is explained in https://docs.docker.com/reference/cli/docker/buildx/build/#load and further discussed in docker/buildx#65. I had to restructure the pipeline a bit.