I have a git project docker-build with the below class: $ cat src/docker_build/DockerBuild.groovy
package docker_build class DockerBuild { def image def steps DockerBuild(steps) { this.steps = steps steps.docker.withRegistry('...', '...') { image = steps.docker.image('...') image.pull() } } } I tried to use the above class from a pipeline like this: docker_build_lib = library(identifier: 'docker_build@master', retriever: modernSCM( [$class: 'GitSCMSource', remote: '...', credentialsId: '...'])) docker_build = docker_build_lib.docker_build pipeline { agent "any" stages { stage("Init") { steps { script { d = docker_build.DockerBuild.new(this) echo "GOT: ${d}" } } } } } The output I get is something like this: $ docker login -u "..." -p ******** ... Login Succeeded [Pipeline] { [Pipeline] echo in withRegistry closure [Pipeline] } [Pipeline] // withDockerRegistry [Pipeline] } [Pipeline] // withEnv [Pipeline] echo GOT: org.jenkinsci.plugins.docker.workflow.Docker$Image@7e65907b My question is, why is DockerBuild.new() returning an object of type Docker$Image instead of docker_build.DockerBuild? Something weird is going on with the constructor and I am unable to even diagnose it. The output from any echo/println statements that I put in the constructor get lost except those that that get executed before the withRegistry() call. In fact, the output from image.pull() also gets lost. In another pipeline where I am doing a pull within the Jenkinsfile, I see output like this: + docker pull ... Using default tag: latest latest: Pulling from ... Digest: sha256:f767e25c35c6977a336c080f16bd9c63fcdc04c405eb984d1c178e273d0547b8 Status: Image is up to date for ... I am just following the Loading libraries dynamically <https://jenkins.io/doc/book/pipeline/shared-libraries/#loading-libraries-dynamically> section and I do want to get this working with dynamically loaded libraries as I want to avoid the global static configuration that is associated with the @Library annotations. I would appreciate any help in diagnosing or getting this working. -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/6f136fed-d2a9-4157-8110-0c3397ecda90%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.