gradle-docker-plugin
gradle-docker-plugin copied to clipboard
Setting registryCredentials for `DockerPushImage` does not work
When running dockerPushImage
or a custom task such as
task myDockerPush(type: DockerPushImage) {
images = ["test/${project.name}:${project.version}"]
registryCredentials {
url = "https://123.dkr.ecr.us-east-1.amazonaws.com/repository"
}
}
the plugin will not use the provided url and fails with
> Task :myDockerPush FAILED
Pushing image 'test/test:0.1.0 to https://index.docker.io/v1/.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':myDockerPush'.
> Could not push image: denied: requested access to the resource is denied
Expected Behavior
it should use the provided url
Current Behavior
its using the default url
Context
gradle 8.2.1
def username = System.properties['user.name']
def uid = ["id", "-u", username].execute().text.trim()
docker {
url = "unix:///run/user/${uid}/docker.sock"
javaApplication {
user = uid
baseImage = "amazon/aws-lambda-java:17"
maintainer = "test"
mainClassName = "test"
}
registryCredentials {
url = "https://123.dkr.ecr.us-east-1.amazonaws.com/repository"
}
println(docker.registryCredentials.url.get())
}
task myDockerPush(type: DockerPushImage) {
images = ["test/${project.name}:${project.version}"]
registryCredentials {
url = "https://123.dkr.ecr.us-east-1.amazonaws.com/repository"
}
}
println(tasks.dockerPushImage.registryCredentials.url.get())
println(tasks.myDockerPush.registryCredentials.url.get())
all 3 print statements print;
https://123.dkr.ecr.us-east-1.amazonaws.com/repository
however, it still uses the default configuration
Dockerfile
and DockerBuildImage
tasks work fine in the same build
ive also tried
afterEvaluate {
project.tasks.withType(RegistryCredentialsAware).configureEach {
println(it.name)
println(it.getRegistryCredentials().getUrl().get())
registryCredentials {
url = "https://123.dkr.ecr.us-east-1.amazonaws.com/repository"
}
println(it.getRegistryCredentials().getUrl().get())
}
}
and
afterEvaluate {
project.tasks.withType(RegistryCredentialsAware) {
println(it.name)
println(it.getRegistryCredentials().getUrl().get())
registryCredentials {
url = "https://123.dkr.ecr.us-east-1.amazonaws.com/repository"
}
println(it.getRegistryCredentials().getUrl().get())
}
}