Issue
-
We are trying to push a Docker image to a Amazon ECR repository in a Pipeline, and we see following messages in the console output.
[docker_container] Running shell script + docker tag --force=true my-image:38 my-image:38 unknown flag: --force See 'docker tag --help'. + docker tag my-image:38 my-image:38 The push refers to repository [docker.io/library/my-image] c31d9a5958c9: Preparing 1e9451bf9430: Preparing 36698d5e0963: Preparing f9e79a7653f9: Preparing efa0b7a2d37b: Preparing fe548f92b224: Preparing a7d53ea16e81: Preparing e53f74215d12: Preparing fe548f92b224: Waiting a7d53ea16e81: Waiting e53f74215d12: Waiting denied: requested access to the resource is denied
Resolution
The tag step fails because the docker version do not know the deprecated parameter --force=true
, for more details take a look at JENKINS-42152
There is the bug related to withDockerRegistry step JENKINS-38018, it will not work, so try to use this example that uses docker.withRegistry() instead withDockerRegistry() in it works if the repository "my-image" exists in Amaron ECR repository
.
node { //cleanup current user docker credentials sh 'rm ~/.dockercfg || true' sh 'rm ~/.docker/config.json || true' //configure registry docker.withRegistry('https://ID.ecr.eu-west-1.amazonaws.com', 'ecr:eu-west-1:86c8f5ec-1ce1-4e94-80c2-18e23bbd724a') { //build image def customImage = docker.build("my-image:${env.BUILD_ID}") //push image customImage.push() }
This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.