Issue
I would like to use Docker CLI inside of a Pipeline job with the Pipeline Docker Plugin
Note: this article does not apply to a Pipeline running in a containerized agent.
Environment
- CloudBees CI (CloudBees Core) on modern cloud platforms - Managed Master
- CloudBees CI (CloudBees Core) on traditional platforms - Client Master
- CloudBees Jenkins Enterprise - Managed Master
- CloudBees Jenkins Platform - Client Master
- CloudBees Jenkins Distribution
- Jenkins LTS
Resolution
Wrapping the section you want to use docker in with docker.withTool("default") {}
will allow you to use the docker command line tool.
This will install docker on that agent to have it running as a service.
You need to make sure that “default” points to a docker tool inside of Manage Jenkins> Configure System
which will also run on the os of the agent.
Your pipeline script will go from this(which doesnt work unless you have docker installed on the agent):
withDockerServer([credentialsId: "AWS-Jenkins-Build-Slave", uri: "tcp://54.229.21.138:2376"]) {
sh "printenv"
sh "docker images"
base = docker.build("flyvictor/victor-wp-build")
base.push("tmp-fromjenkins")
}
To this(which does work):
docker.withTool("default") {
withDockerServer([credentialsId: "AWS-Jenkins-Build-Slave", uri: "tcp://54.229.21.138:2376"]) {
sh "printenv"
sh "docker images"
base = docker.build("flyvictor/victor-wp-build")
base.push("tmp-fromjenkins")
}
}
0 Comments