GoogleContainerTools / jib

🏗 Build container images for your Java applications.
Apache License 2.0
13.58k stars 1.43k forks source link

The system does not have docker-credential-ecr-login CLI #4176

Open jimmyzzxhlh opened 7 months ago

jimmyzzxhlh commented 7 months ago

Environment:

Description of the issue: I have the AWS docker-credential-ecr-login installed using Brew, and I can execute the following command to get a secret token.

echo <repository_uri> | docker-credential-ecr-login get

But Jib throws the following error:

Execution failed for task ':jib'.
> com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: The system does not have docker-credential-ecr-login CLI

Steps to reproduce: Run ./gradlew jib

jib-gradle-plugin Configuration:

jib {
    from {
        image = "openjdk:alpine"
    }
    to {
        image = <repository_uri>
        setCredHelper("ecr-login")
        tags = setOf("latest")
    }
}
chanseokoh commented 7 months ago

I suspect this:

You configured a credential helper, but the helper is not on $PATH. This is especially common when running Jib inside IDE where the IDE binary is launched directly from an OS menu and does not have access to your shell's environment.

If everything else fails, as a last resort, you can always set the absolute path of your docker-credential-ecr-login:

This parameter can either be configured as an absolute path to the credential helper executable or as a credential helper suffix (following docker-credential-).

jasonab commented 5 months ago

I have this same problem on OSX, but it's with desktop and osxkeychain

39otrebla commented 2 months ago

Same issue here.

Jib version: 3.4.3 Gradle Wrapper: 8.6 OS: Mac Sonoma 14.5 (23F79)

Setting credHelper as absolute path works, but It is annoying to manage differences with the CI/CD environment.