chore(ci): use cache mount for apt install to speed up docker build #15441
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Optimizes Docker build performance by implementing BuildKit cache mounts for APT package operations. This change reduces rebuild times by 2-6 minutes per build while maintaining identical image outputs and sizes.
Key changes:
Performance impact:
Technical Details
BuildKit cache mounts provide persistent external caches that survive between builds but are not included in final images. This eliminates redundant package downloads when rebuilding after upstream layer changes, which is especially valuable for DataHub's multi-stage builds with heavy dependencies (LDAP, Kerberos, ODBC, Kafka, JRE, etc.).
The sharing=locked parameter prevents cache corruption in parallel build scenarios.
Files Changed
Test Plan
Requirements
Requires Docker with BuildKit support (default since Docker 23.0). Legacy docker build without BuildKit will fail gracefully with clear error messages.