Fix default user/groups in buildpack builds. #3396
Merged
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.
Change Summary
What and Why:
Pass magic "make file ownership match the user running the process" to packclient's BuildArgs when using github.com/buildpacks/pack.
The Pack library started supporting (commit) custom groups and users owning files in the image - unfortunately the "default" behavior changed to be "make all files owned by UID/GID 0" and the old "make file ownership match the user running the process" behavior now requires passing a magic constant for the new GroupID and UserID parameters to the build arguments.
The symptom we saw is that files in buildpack-generated images were all owned by root, while the running process was non-root, causing ENOACCES errors when running images and VMs.
How:
This fixes the described problem by passing the new magic constant for GroupID and UserID in buildargs for buildpack-based images.
Related to:
(Multiple reports in community forum about ENOACCES, permission denied errors in buildpack deploys.)
Documentation