docker-slave never connects to master if User is defined in configuration
See original GitHub issueOfficial docker jenkinsci/slave can’t connect to master with JNLP if User defined in Docker Template settings because ‘su -’ is asking password:
su - jenkins -c 'java -jar /home/jenkins/slave.jar -jnlpUrl http://172.17.0.1:8080//computer/local-40540371074b//slave-agent.jnlp -secret 97fd6c89df227d6d938ddc313bed17172c635a9c4a0084facf12a363cf5040f4
Password:
Steps to reproduce:
- Installed docker-engine with TCP listen socket
$ docker version
Client:
Version: 1.12.6
API version: 1.24
Go version: go1.6.4
Git commit: 78d1802
Built: Tue Jan 10 20:38:45 2017
OS/Arch: linux/amd64
Server:
Version: 1.12.6
API version: 1.24
Go version: go1.6.4
Git commit: 78d1802
Built: Tue Jan 10 20:38:45 2017
OS/Arch: linux/amd64
- Start jenkins:
mkdir $(pwd)/jenkins_home ; docker run -d -p 8080:8080 --name=jenkins-master -p 50000:50000 -v /tmp/jenkins_home:/var/jenkins_home --env JAVA_OPTS="-Djenkins.slaves.DefaultJnlpSlaveReceiver.disableStrictVerification=true" jenkins
- Make initial steps and install docker-plugin
- Manage Jenkins -> Configure Global Security -> Agent protocols -> Enable Java Web Start Agent Protocol/4
- Manage Jenkins -> Configure System -> Cloud -> Add new cloud docker: Name: local Docker URL: tcp://172.17.0.1:2375 Add Docker template: Docker Image: jenkinsci/slave Labels: docker-slave Launch method: (Experimental) Docker JNLP launcher User: jenkins -> Save
- Create new pipeline job and run it
node('docker-slave') {
echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"
stage('Test') {
echo 'stage Test'
}
}
jenkins-slave container logs:
$ docker logs -f hungry_carson
+ cat
+ chmod +x /tmp/init.sh
+ exec /tmp/init.sh
+ export CONFIG=/tmp/config.sh
+ CONFIG=/tmp/config.sh
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'No config, sleeping for 1 second'
No config, sleeping for 1 second
+ sleep 1
+ '[' '!' -f /tmp/config.sh ']'
+ echo 'Found config file'
Found config file
+ source /tmp/config.sh
++ JENKINS_URL=http://172.17.0.1:8080/
++ JENKINS_USER=jenkins
++ JENKINS_HOME=/home/jenkins
++ COMPUTER_URL=computer/local-40540371074b/
++ COMPUTER_SECRET=97fd6c89df227d6d938ddc313bed17172c635a9c4a0084facf12a363cf5040f4
+ '[' -z http://172.17.0.1:8080/ ']'
+ '[' -z computer/local-40540371074b/ ']'
+ '[' '!' -d /home/jenkins ']'
+ '[' -z /home/jenkins ']'
++ command -v curl
+ '[' -x /usr/bin/curl ']'
+ curl -o /home/jenkins/slave.jar http://172.17.0.1:8080//jnlpJars/slave.jar
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 699k 100 699k 0 0 134M 0 --:--:-- --:--:-- --:--:-- 170M
+ env
HOSTNAME=40540371074b
TERM=xterm
CA_CERTIFICATES_JAVA_VERSION=20140324
CONFIG=/tmp/config.sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/home/jenkins
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
LANG=C.UTF-8
JAVA_VERSION=8u102
JAVA_DEBIAN_VERSION=8u102-b14.1-1~bpo8+1
HOME=/home/jenkins
SHLVL=1
_=/usr/bin/env
+ RUN_OPTS='-jnlpUrl http://172.17.0.1:8080//computer/local-40540371074b//slave-agent.jnlp '
+ '[' '!' -z 97fd6c89df227d6d938ddc313bed17172c635a9c4a0084facf12a363cf5040f4 ']'
+ RUN_OPTS+=' -secret 97fd6c89df227d6d938ddc313bed17172c635a9c4a0084facf12a363cf5040f4 '
+ RUN_CMD='java -jar /home/jenkins/slave.jar -jnlpUrl http://172.17.0.1:8080//computer/local-40540371074b//slave-agent.jnlp -secret 97fd6c89df227d6d938ddc313bed17172c635a9c4a0084facf12a363cf5040f4 '
+ '[' '!' -z jenkins ']'
+ '[' xjenkins '!=' xroot ']'
+ '[' jenkins '!=' null ']'
+ su - jenkins -c 'java -jar /home/jenkins/slave.jar -jnlpUrl http://172.17.0.1:8080//computer/local-40540371074b//slave-agent.jnlp -secret 97fd6c89df227d6d938ddc313bed17172c635a9c4a0084facf12a363cf5040f4 '
Password:
jenkins-master container logs:
docker logs -f jenkins-master
INFO: Trying to run container for jenkinsci/slave
Jan 17, 2017 9:02:20 AM hudson.slaves.NodeProvisioner$2 run
INFO: Image of jenkinsci/slave provisioning successfully completed. We have now 2 computer(s)
Jan 17, 2017 9:02:20 AM com.nirima.jenkins.plugins.docker.launcher.DockerComputerJNLPLauncher launch
INFO: Starting connection command for 40540371074b04077239860ad972452a10738f6366e73d04723ecfc561591322
Jan 17, 2017 9:02:20 AM com.nirima.jenkins.plugins.docker.launcher.DockerComputerJNLPLauncher launch
INFO: Successfully executed jnlp connection for '40540371074b04077239860ad972452a10738f6366e73d04723ecfc561591322'
Jan 17, 2017 9:04:20 AM com.nirima.jenkins.plugins.docker.launcher.DockerComputerJNLPLauncher launch
INFO: Launch timeout, termintaing slave based on '40540371074b04077239860ad972452a10738f6366e73d04723ecfc561591322'
Jan 17, 2017 9:04:20 AM com.nirima.jenkins.plugins.docker.DockerSlave _terminate
INFO: Disconnected computer
Jan 17, 2017 9:04:30 AM com.nirima.jenkins.plugins.docker.DockerSlave _terminate
INFO: Stopped container 40540371074b04077239860ad972452a10738f6366e73d04723ecfc561591322
Jan 17, 2017 9:04:31 AM com.nirima.jenkins.plugins.docker.DockerSlave _terminate
INFO: Removed container 40540371074b04077239860ad972452a10738f6366e73d04723ecfc561591322
Jan 17, 2017 9:04:40 AM com.nirima.jenkins.plugins.docker.DockerCloud provision
INFO: Asked to provision 1 slave(s) for: docker-slave
Jan 17, 2017 9:04:40 AM com.nirima.jenkins.plugins.docker.DockerCloud provision
INFO: Will provision 'jenkinsci/slave', for label: 'docker-slave', in cloud: 'local'
Jan 17, 2017 9:04:40 AM com.nirima.jenkins.plugins.docker.DockerCloud addProvisionedSlave
INFO: Provisioning 'jenkinsci/slave' number '0' on 'local'; Total containers: '1'
Jan 17, 2017 9:04:40 AM hudson.slaves.NodeProvisioner$StandardStrategyImpl apply
INFO: Started provisioning Image of jenkinsci/slave from local with 1 executors. Remaining excess workload: 0
Jan 17, 2017 9:04:40 AM com.nirima.jenkins.plugins.docker.DockerCloud provisionWithWait
INFO: Trying to run container for jenkinsci/slave
Jan 17, 2017 9:04:50 AM hudson.slaves.NodeProvisioner$2 run
INFO: Image of jenkinsci/slave provisioning successfully completed. We have now 2 computer(s)
Jan 17, 2017 9:04:50 AM com.nirima.jenkins.plugins.docker.launcher.DockerComputerJNLPLauncher launch
INFO: Starting connection command for 43d8860cbec61632b48fe8d6dc0e8d688608a5f66862891c282f6a9d8e9a5768
Jan 17, 2017 9:04:50 AM com.nirima.jenkins.plugins.docker.launcher.DockerComputerJNLPLauncher launch
INFO: Successfully executed jnlp connection for '43d8860cbec61632b48fe8d6dc0e8d688608a5f66862891c282f6a9d8e9a5768'
Manage jenkins -> Manage nodes -> log:
Starting connection command for 40540371074b04077239860ad972452a10738f6366e73d04723ecfc561591322
Successfully executed jnlp connection for 40540371074b04077239860ad972452a10738f6366e73d04723ecfc561591322
Waiting slave connection...
Waiting slave connection...
Waiting slave connection...
Waiting slave connection...
Waiting slave connection...
Waiting slave connection...
Waiting slave connection...
Waiting slave connection...
Waiting slave connection...
try reproduce with evarga/jenkins-slave image with dumb freestyle job
Not reproducing:
docker logs serene_murdock
...
+ wget http://172.17.0.1:8080//jnlpJars/slave.jar -O /home/jenkins/slave.jar
/tmp/init.sh: line 42: wget: command not found
Manage old data
No old data was found.
Installed plugins:
$ curl -sSL "http://$JENKINS_HOST/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \2\n/g'|sed 's/ /:/'
bouncycastle-api:2.16.0
cloudbees-folder:5.16
structs:1.5
junit:1.19
pam-auth:1.3
windows-slaves:1.2
display-url-api:0.5
mailer:1.18
ldap:1.13
token-macro:2.0
external-monitor-job:1.7
icon-shim:2.0.3
matrix-auth:1.4
antisamy-markup-formatter:1.5
script-security:1.25
matrix-project:1.8
build-timeout:1.18
credentials:2.1.10
workflow-step-api:2.7
plain-credentials:1.3
credentials-binding:1.10
timestamper:1.8.7
workflow-api:2.8
workflow-basic-steps:2.3
resource-disposer:0.6
ws-cleanup:0.32
pipeline-milestone-step:1.3
workflow-support:2.12
pipeline-build-step:2.4
jquery-detached:1.2.1
pipeline-input-step:2.5
ace-editor:1.1
workflow-scm-step:2.3
scm-api:2.0.1
workflow-cps:2.23
pipeline-stage-step:2.2
workflow-job:2.9
pipeline-graph-analysis:1.3
pipeline-rest-api:2.4
handlebars:1.1.1
momentjs:1.1.1
pipeline-stage-view:2.4
ssh-credentials:1.12
git-client:2.2.1
git-server:1.7
workflow-cps-global-lib:2.5
branch-api:2.0.0
workflow-multibranch:2.10
durable-task:1.12
workflow-durable-task-step:2.8
workflow-aggregator:2.4
github-api:1.84
git:3.0.2
github:1.25.1
github-branch-source:2.0.0
pipeline-github-lib:1.0
github-organization-folder:1.6
ssh-slaves:1.12
docker-plugin:0.16.2
config.xml
<clouds>
<com.nirima.jenkins.plugins.docker.DockerCloud plugin="docker-plugin@0.16.2">
<name>local</name>
<templates>
<com.nirima.jenkins.plugins.docker.DockerTemplate>
<configVersion>2</configVersion>
<labelString>docker-slave</labelString>
<launcher class="com.nirima.jenkins.plugins.docker.launcher.DockerComputerJNLPLauncher">
<launchTimeout>120</launchTimeout>
<user>jenkins</user>
</launcher>
<remoteFsMapping>/var/jenkins_home</remoteFsMapping>
<remoteFs>/home/jenkins</remoteFs>
<instanceCap>1</instanceCap>
<mode>NORMAL</mode>
<retentionStrategy class="com.nirima.jenkins.plugins.docker.strategy.DockerOnceRetentionStrategy">
<idleMinutes>10</idleMinutes>
<idleMinutes defined-in="com.nirima.jenkins.plugins.docker.strategy.DockerOnceRetentionStrategy">10</idleMinutes>
</retentionStrategy>
<numExecutors>1</numExecutors>
<dockerTemplateBase>
<image>jenkinsci/slave</image>
<dockerCommand></dockerCommand>
<lxcConfString></lxcConfString>
<hostname></hostname>
<dnsHosts/>
<network></network>
<volumes/>
<volumesFrom2/>
<environment/>
<bindPorts></bindPorts>
<bindAllPorts>false</bindAllPorts>
<privileged>false</privileged>
<tty>false</tty>
<extraHosts class="java.util.Collections$UnmodifiableRandomAccessList" resolves-to="java.util.Collections$UnmodifiableList">
<c class="list"/>
<list reference="../c"/>
</extraHosts>
</dockerTemplateBase>
<removeVolumes>false</removeVolumes>
<pullStrategy>PULL_LATEST</pullStrategy>
</com.nirima.jenkins.plugins.docker.DockerTemplate>
</templates>
<serverUrl>tcp://172.17.0.1:2375</serverUrl>
<connectTimeout>0</connectTimeout>
<readTimeout>0</readTimeout>
<version></version>
<credentialsId></credentialsId>
<containerCap>100</containerCap>
</com.nirima.jenkins.plugins.docker.DockerCloud>
</clouds>
Issue Analytics
- State:
- Created 7 years ago
- Reactions:2
- Comments:7 (1 by maintainers)
Top Results From Across the Web
Jenkins: running build does not provision docker slave
In the job configuration: I've checked "Docker container"; added my tag; source code is connected via git checkout. enter image description here.
Read more >How To Setup Docker Containers As Build Agents For Jenkins
In this guide, I will walk you through the steps for configuring docker containers as build agents/slaves for Jenkins using the Jenkins Docker...
Read more >Run Jenkins in Slave Master Config in Docker - YouTube
In this video we explore the customizations available in the appcontainers/jenkins docker container image. This container is set to allow ...
Read more >Setup Docker containers as Build Slaves for Containerized ...
Jenkins master connects to the docker host using REST API's. So we need to enable the remote API for our docker host. All...
Read more >Confusion with Jenkins Docker Plugin and ... - Server Fault
According to your Docker Plugin configuration, you are using 172.17.0.1 as the Docker host. From the slave or master container, ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

Any new developments? I’m curious to the solution myself.
same here!!! what are the requirements for the slave image? There definitely are some and they are not specified anywhere!