[OI-670] fix: use appropriate builder images for docker credential helpers #1561
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.
What this does
This change ensures that the docker credential helper binaries listed below can be executed on the Alpine and UBI9 production images.
docker-credential-ecr-login
docker-credential-acr-env
Prior to this change, the binaries were built using the
golang:1.23
image. This would normally be okay, because Go by default produces statically linked binaries. However, the helpers both make use of the dependencygarden.eu.org/docker/docker-credential-helpers
, which forces CGO because of it's usage of system libraries to interact with local keychains. As a result, the binaries were dynamically linked, but without cross compilation, which meant they were linked appropriately for thegolang:1.23
image, but not the final production images.In Alpine, this manifested in the rather unhelpful
not found
error message when attempting to execute the binary. This is actually an error from the musl linker, stating that it did not find a dynamically linked library, but can be easily misinterpreted as stating that the binary was not found.