[JIRA] (JENKINS-59976) Nested agent try to fetch the image from top defined agent registry instead of docker hub

9 views
Skip to first unread message

felipecassiors@gmail.com (JIRA)

unread,
Oct 29, 2019, 12:09:05 PM10/29/19
to jenkinsc...@googlegroups.com
Felipe Santos updated an issue
 
Jenkins / Bug JENKINS-59976
Nested agent try to fetch the image from top defined agent registry instead of docker hub
Change By: Felipe Santos
Attachment: consoleText.txt
Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

felipecassiors@gmail.com (JIRA)

unread,
Oct 29, 2019, 12:09:05 PM10/29/19
to jenkinsc...@googlegroups.com
Felipe Santos updated an issue
Change By: Felipe Santos
Summary:
Nested agent try to fetch the image from top defined agent registry instead of docker hub

felipecassiors@gmail.com (JIRA)

unread,
Oct 29, 2019, 1:46:02 PM10/29/19
to jenkinsc...@googlegroups.com
Felipe Santos commented on Bug JENKINS-59976
 
Re: Nested agent try to fetch the image from top defined agent registry instead of docker hub

This is a workaround which can be used for now:

Specify the registry on the 2nd agent
agent {
    docker 

{          registryUrl 'https://docker.io'         image 'alpine'     }

}

felipecassiors@gmail.com (JIRA)

unread,
Oct 29, 2019, 1:54:03 PM10/29/19
to jenkinsc...@googlegroups.com
Felipe Santos updated an issue
Change By: Felipe Santos
When you run a nested agent (let's call it 2nd agent) in the pipeline definition, it is being pulled from the 1st agent   's ( agent  defined on top of pipeline)   registry when no registry is specified   on the 2nd (which should mean the official docker hub).

Steps to reproduce:

1. Run your Jenkins master, and assure the place you're gonna run the pipeline has Docker installed.
2. Create a pipeline like this:
```groovy
pipeline {
    agent {
        docker 



            registryUrl 'https://mirror.gcr.io'
            image 'library/docker'
            args '-v /var/run/docker.sock:/var/run/docker.sock'
        }

    }
    stages {
        stage('Docker on Docker') {
            agent {
                docker 



                    // Should fetch from docker hub, right? It tries to fetch from the https://mirror.gcr.io instead.
                    image 'alpine'
                }

            }
            steps 



                sh 'echo hi'
            }

        }
    }
}
```
3. Run, and you'll get something like this:
```log
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Docker on Docker)
[Pipeline] getContext
[Pipeline] isUnix
[Pipeline] sh
+ docker inspect -f . alpine

Error: No such object: alpine
15:45:40.417159 durable_task_monitor.go:63: exit status 1
[Pipeline] isUnix
[Pipeline] sh
+ docker inspect -f . mirror.gcr.io/alpine

Error: No such object: mirror.gcr.io/alpine
15:45:40.704922 durable_task_monitor.go:63: exit status 1
[Pipeline] isUnix
[Pipeline] sh
+ docker pull mirror.gcr.io/alpine
Using default tag: latest
Error response from daemon: manifest for mirror.gcr.io/alpine:latest not found: manifest unknown: Failed to fetch "latest" from request "/v2/alpine/manifests/latest".
15:45:41.467742 durable_task_monitor.go:63: exit status 1
```

As you can see it tries to pull from mirror.gcr.io instead of the docker hub.

felipecassiors@gmail.com (JIRA)

unread,
Oct 29, 2019, 2:16:02 PM10/29/19
to jenkinsc...@googlegroups.com
 
Re: Nested agent try to fetch the image from top defined agent registry instead of docker hub

Another workaround is to manually set the default Docker registry URL to https://docker.io under Manage Jenkins -> Configure System > Pipeline Model Definition, despite it says the blank works the same. See attached pic.

felipecassiors@gmail.com (JIRA)

unread,
Oct 29, 2019, 2:16:03 PM10/29/19
to jenkinsc...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages