I am following a youtube CICD Pipeline video:
The jenkinsfile is below:
pipeline{
agent{
label "jenkins-agent"
}
tools {
jdk 'Java17'
maven 'Maven3'
dockerTool 'DOCKER25'
}
environment {
APP_NAME = "complete-prodcution-e2e-pipeline"
RELEASE = "1.0.0"
PATH = "C:\\WINDOWS\\SYSTEM32"
DOCKER_USER = "docker_username"
DOCKER_PASS = "docker_token"
IMAGE_NAME = "${DOCKER_USER}" + "/" + "${APP_NAME}"
IMAGE_TAG = "${RELEASE}-${BUILD_NUMBER}"
}
stages{
stage("Cleanup Workspace"){
steps {
cleanWs()
}
}
stage("Checkout from SCM"){
steps {
git branch: 'main', credentialsId: 'github', url: 'https://github.com/Coding-s-Life/complete-prodcution-e2e-pipeline'
}
}
stage("Build Application"){
steps {
bat 'mvn clean package'
}
}
stage("Test Application"){
steps {
bat 'mvn test'
}
}
stage("SonarQube Static Code Analysis"){
steps {
script {
withSonarQubeEnv(credentialsId: 'jenkins-sonarqube-token') {
bat 'mvn sonar:sonar'
}
}
}
}
//stage("SonarQube Quality Gate"){
// steps {
// script {
// waitForQualityGate abortPipeline: false, credentialsId: 'jenkins-sonarqube-token'
// }
// }
//}
// stage('Docker login') {
// steps {
// withCredentials([usernamePassword(credentialsId: 'docker_token', DOCKER_USER: 'DOCKER_USERNAME', DOCKER_PASS: 'DOCKER_PASSWORD')]) {
// bat "echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin"
// }
//}
//}
stage("Build & Push Docker Image") {
steps {
script {
docker.withRegistry('',DOCKER_PASS) {
docker_image = docker.build "${IMAGE_NAME}"
}
docker.withRegistry('',DOCKER_PASS) {
docker_image.push("${IMAGE_TAG}")
docker_image.push('latest')
}
}
}
}
}
}
I am trying to configure docker to read my dockerfile and get executed in the docker’s build pipeline. In the Configuration Tools section I have defined
$ docker login -u eagertolearn001 -p ******** https://index.docker.io/v1/
exec: "com.docker.cli.exe": executable file not found in %PATH%
Current PATH : C:\ProgramData\Jenkins\.jenkins\tools\hudson.model.JDK\Java17/bin;C:\ProgramData\Jenkins\.jenkins\tools\hudson.tasks.Maven_MavenInstallation\Maven3/bin;C:\ProgramData\Jenkins\.jenkins\tools\hudson.model.JDK\Java17/bin;C:\ProgramData\Jenkins\.jenkins\tools\hudson.tasks.Maven_MavenInstallation\Maven3/bin;C:\WINDOWS\SYSTEM32;C:\Program Files\Jenkins
[Pipeline] // withDockerRegistry
Also getting this error that jenkins is not able to download the latest docker image when in the “Add installations”, I select docker.com
Unpacking https://get.docker.com/builds/Windows/x86_64/docker-latest.tgz to C:\ProgramData\Jenkins\.jenkins\tools\org.jenkinsci.plugins.docker.commons.tools.DockerTool\docker on Jenkins
[Pipeline] // withDockerRegistry
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
java.io.IOException: Server returned HTTP response code: 403 for URL: https://get.docker.com/builds/Windows/x86_64/docker-latest.tgz
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1997)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3240)
at java.base/java.net.URLConnection.getHeaderFieldLong(URLConnection.java:637)
at java.base/java.net.URLConnection.getContentLengthLong(URLConnection.java:509)
at java.base/java.net.URLConnection.getContentLength(URLConnection.java:493)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getContentLength(HttpsURLConnectionImpl.java:368)
at org.jvnet.robust_http_client.RetryableHttpStream.<init>(RetryableHttpStream.java:90)
Caused: java.io.IOException: Server returned HTTP response code: 403 for URL: https://get.docker.com/builds/Windows/x86_64/docker-latest.tgz
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2048)
at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2043)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:2042)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1609)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
at org.jvnet.robust_http_client.RetryableHttpStream.getStream(RetryableHttpStream.java:98)
at org.jvnet.robust_http_client.RetryableHttpStream.<init>(RetryableHttpStream.java:91)
at org.jvnet.robust_http_client.RetryableHttpStream.<init>(RetryableHttpStream.java:74)
at hudson.ProxyConfiguration.getInputStream(ProxyConfiguration.java:348)
at hudson.FilePath.installIfNecessaryFrom(FilePath.java:1068)
Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 0c0fec25-e325-47fb-8ba2-578043be3ba8
Caused: java.io.IOException: Failed to install https://get.docker.com/builds/Windows/x86_64/docker-latest.tgz to C:\ProgramData\Jenkins\.jenkins\tools\org.jenkinsci.plugins.docker.commons.tools.DockerTool\docker
at hudson.FilePath.installIfNecessaryFrom(FilePath.java:1086)
at hudson.FilePath.installIfNecessaryFrom(FilePath.java:981)
at org.jenkinsci.plugins.docker.commons.tools.DockerToolInstaller.performInstallation(DockerToolInstaller.java:135)
at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:70)
at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:109)
at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:221)
at org.jenkinsci.plugins.docker.commons.tools.DockerTool.forNode(DockerTool.java:106)
at org.jenkinsci.plugins.docker.commons.tools.DockerTool.getExecutable(DockerTool.java:80)
at org.jenkinsci.plugins.docker.workflow.RegistryEndpointStep$Execution2.newKeyMaterialFactory(RegistryEndpointStep.java:96)
at org.jenkinsci.plugins.docker.workflow.AbstractEndpointStepExecution2.doStart(AbstractEndpointStepExecution2.java:52)
at org.jenkinsci.plugins.workflow.steps.GeneralNonBlockingStepExecution.lambda$run$0(GeneralNonBlockingStepExecution.java:77)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)
Finished: FAILURE
Any help will be greatly appreciated.
Sincere Regards
EagerToLearn