Jenkins Docker Plugin with custom registry

38 views
Skip to first unread message

Markus Petzsch

unread,
Jan 15, 2018, 2:52:29 PM1/15/18
to jenkins...@googlegroups.com
Hello List,

I am trying to provision jenkins build slaves (docker templates) on demand
with the docker plugin. The build images are stored in a local registry
which requires credentials. Now I came across the following screenshot where
the user was able to specify the custom registry:

https://user-images.githubusercontent.com/28305157/31658912-566eef16-b32a-11
e7-810e-a3308769a911.png

This option does not exist on my jenkins installation however (There is only
a button to add registry credentials - odd enough).

In the logs I get the following messages:

Asked to provision 1 slave(s) for: Java
Jan 15, 2018 3:52:35 PM INFO com.nirima.jenkins.plugins.docker.DockerCloud
provision
Will provision 'XXX/buildslaves:java', for label: 'Java', in cloud: 'docker'
Jan 15, 2018 3:52:41 PM INFO com.nirima.jenkins.plugins.docker.DockerCloud
addProvisionedSlave
Provisioning 'XXX/buildslaves:java' number '0' on 'docker'; Total
containers: '2'
Jan 15, 2018 3:52:41 PM INFO
com.nirima.jenkins.plugins.docker.DockerTemplate pullImage
Pulling image 'XXX/buildslaves:java'. This may take awhile...
Jan 15, 2018 3:52:41 PM INFO
hudson.slaves.NodeProvisioner$StandardStrategyImpl apply
Started provisioning Image of XXX/buildslaves:java from docker with 1
executors. Remaining excess workload: 0
Jan 15, 2018 3:52:43 PM SEVERE
com.github.dockerjava.core.async.ResultCallbackTemplate onError
Error during callback
com.github.dockerjava.api.exception.NotFoundException: {"message":"pull
access denied for XXX/buildslaves, repository does not exist or may require
'docker login'"}

at
com.github.dockerjava.netty.handler.HttpResponseHandler.channelRead0(HttpRes
ponseHandler.java:103)
at
com.github.dockerjava.netty.handler.HttpResponseHandler.channelRead0(HttpRes
ponseHandler.java:33)
at
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboun
dHandler.java:105)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:362)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:348)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChann
elHandlerContext.java:340)
at
io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:362)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:348)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChann
elHandlerContext.java:340)
at
io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContex
t.fireChannelRead(CombinedChannelDuplexHandler.java:438)
at
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDec
oder.java:310)
at
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder
.java:284)
at
io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDup
lexHandler.java:253)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:362)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:348)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChann
elHandlerContext.java:340)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1267)
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1078)
at
io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(B
yteToMessageDecoder.java:489)
at
io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.
java:428)
at
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder
.java:265)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:362)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:348)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChann
elHandlerContext.java:340)
at
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChann
elPipeline.java:1334)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:362)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractCha
nnelHandlerContext.java:348)
at
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeli
ne.java:926)
at
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioBy
teChannel.java:134)
at
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.
java:579)
at
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventEx
ecutor.java:858)
at
io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(D
efaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)

I'm using the Jenkins docker image with the following docker plugins and
versions:

Docker API Plugin 3.0.14
Docker Commons Plugin 1.11
Docker Pipeline 1.14
Docker plugin 1.1.2

Any help with this is highly appreciated.

Best Regards

Markus Petzsch

Markus Petzsch

unread,
Jan 16, 2018, 5:50:13 AM1/16/18
to jenkins...@googlegroups.com
Hello again,

I found the solution myself. Putting the registry into the image name like so
solved it:

registry:4567/XXX/buildslaves:java

Best Regards

Markus Petzsch
Reply all
Reply to author
Forward
0 new messages