Add NVIDIA Container Build Script
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
- [x] The toolchain has been rebuilt successfully (or no changes were made to it)
- [x] The toolchain/worker package manifests are up-to-date
- [x] Any updated packages successfully build (or no packages were changed)
- [x] Packages depending on static components modified in this PR (Golang,
*-staticsubpackages, etc.) have had theirReleasetag incremented. - [x] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
- [x] All package sources are available
- [x] cgmanifest files are up-to-date and sorted (
./cgmanifest.json,./toolkit/scripts/toolchain/cgmanifest.json,.github/workflows/cgmanifest.json) - [x] LICENSE-MAP files are up-to-date (
./SPECS/LICENSES-AND-NOTICES/data/licenses.json,./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md,./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON) - [x] All source files have up-to-date hashes in the
*.signatures.jsonfiles - [x]
sudo make go-tidy-allandsudo make go-test-coveragepass - [x] Documentation has been updated to match any changes to the build system
- [x] If you are adding/removing a .spec file that has multiple-versions supported, please add @microsoft/cbl-mariner-multi-package-reviewers team as reviewer (Eg. golang has 2 versions 1.18, 1.21+)
- [x] Ready to merge
Summary
What does the PR accomplish, why was it needed?
- Enable building the NVIDIA GPU driver container
Does this affect the toolchain?
NO
Test Methodology
- Pipeline build id: https://dev.azure.com/mariner-org/mariner/_build/results?buildId=588693&view=results
The pipeline build doesn't seem to exist anymore
The pipeline build doesn't seem to exist anymore
Thanks for catching this. Have fixed the link to point to the latest test run.
Need to refactor the design pattern here since the current approach will add more layers in the build process, which contributes to the overall size of the container image. The major size contribution comes from the standalone setup of the local repo to pull packages from. Need to compress multiple steps into one step to trim the size.
Refactored the template steps to compress multiple steps into one, which resolved the excessively large container size issue. The size of the container image is the same as when directly building from the upstream source.
Deferring for 3.0
Discussed about this offline. Will re-target the change to 3.0-dev instead.