run jenkins pipeline fails "docker": error=2, No such file or directory

5,054 views
Skip to first unread message

Lynn Lin

unread,
Nov 24, 2017, 3:27:02 AM11/24/17
to Jenkins Users
hi

I am following this guide to have a run jenkins pipeline in my mac  https://jenkins.io/doc/pipeline/tour/agents/ 

pipeline {
    agent {
        docker { image 'node:7-alpine' }
    }
    stages {
        stage('Test') {
            steps {
                sh 'node --version'
            }
        }
    }
}




and it reports below error
[pipeline] Running shell script
+ docker pull node:7-alpine
7-alpine: Pulling from library/node
Digest: sha256:4954ce53247180e207772f936223b11d52a7e4ee712dfe73fe2a75e39f785067
Status: Image is up to date for node:7-alpine
[Pipeline] }
[Pipeline] // stage
[Pipeline] sh
[pipeline] Running shell script
+ docker inspect -f . node:7-alpine
.
[Pipeline] withDockerContainer
[Pipeline] // withDockerContainer
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
	at hudson.Proc$LocalProc.<init>(Proc.java:249)
	at hudson.Proc$LocalProc.<init>(Proc.java:218)
	at hudson.Launcher$LocalLauncher.launch(Launcher.java:930)
	at hudson.Launcher$ProcStarter.start(Launcher.java:450)
	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:279)
	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:260)
	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:257)
	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.version(DockerClient.java:229)
	at org.jenkinsci.plugins.docker.workflow.WithContainerStep$Execution.start(WithContainerStep.java:141)
	at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:224)
	at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:150)
	at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMetho
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:19)
Caused: java.io.IOException: Cannot run program "docker": error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at hudson.Proc$LocalProc.<init>(Proc.java:249)
	at hudson.Proc$LocalProc.<init>(Proc.java:218)
	at hudson.Launcher$LocalLauncher.launch(Launcher.java:930)
	at hudson.Launcher$ProcStarter.start(Launcher.java:450)
	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:279)
	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:260)
	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:257)
	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.version(DockerClient.java:229)
	at org.jenkinsci.plugins.docker.workflow.WithContainerStep$Execution.start(WithContainerStep.java:141)
	at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:224)
	at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:150)
	at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:19)
	at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(jar:file:/Users/linxin/.jenkins/plugins/docker-workflow/WEB-INF/lib/docker-workflow.jar!/org/jenkinsci/plugins/docker/workflow/Docker.groovy:1

Oleg Nenashev

unread,
Nov 26, 2017, 11:55:33 AM11/26/17
to Jenkins Users
Hi,

Docker CLI tool needs to be installed on the machine and available in PATH if you do not specify a Docker tool installation to be used.
See the withTool() documentation if you need to specify a tool path: https://github.com/jenkinsci/docker-workflow-plugin/blob/f32bca9148471ff7381f5404a747b0151305996e/src/main/resources/org/jenkinsci/plugins/docker/workflow/DockerDSL/help.jelly#L31-L37

Best regards,
Oleg Nenashev


пятница, 24 ноября 2017 г., 11:27:02 UTC+3 пользователь Lynn Lin написал:

Lynn Lin

unread,
Nov 26, 2017, 2:51:50 PM11/26/17
to jenkins...@googlegroups.com

Oleg Nenashev <o.v.ne...@gmail.com>于2017年11月26日 周日上午8:55写道:
Hi,

Docker CLI tool needs to be installed on the machine and available in PATH if you do not specify a Docker tool installation to be used.
See the withTool() documentation if you need to specify a tool path: https://github.com/jenkinsci/docker-workflow-plugin/blob/f32bca9148471ff7381f5404a747b0151305996e/src/main/resources/org/jenkinsci/plugins/docker/workflow/DockerDSL/help.jelly#L31-L37

Thanks, but you can see from the log that Docker pull already succeeded so curious why Docker inspect fails 
--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/O-_7JBEncV8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/1e9ece03-b187-42c0-9670-4fa1d683942a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

anilkumar panditi

unread,
Jan 28, 2021, 5:59:06 AM1/28/21
to Jenkins Users
Hi,
I have Jenkins running as docker container and in my Jenkins File , in initialize stage i have following which is working also , i have installed docker from Docker hub latest. Not sure where is the problem . Pipeline is failing with the following.

ava.io.IOException: error=2, No such file or directory

at java.lang.UNIXProcess.forkAndExec(Native Method)

at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)

at java.lang.ProcessImpl.start(ProcessImpl.java:134)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

Caused: java.io.IOException: Cannot run program "docker": error=2, No such file or directory

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

at hudson.Proc$LocalProc.<init>(Proc.java:250)

at hudson.Proc$LocalProc.<init>(Proc.java:219)

at hudson.Launcher$LocalLauncher.launch(Launcher.java:936)

at hudson.Launcher$ProcStarter.start(Launcher.java:454)

at hudson.Launcher$ProcStarter.join(Launcher.java:465)

at org.jenkinsci.plugins.docker.commons.impl.RegistryKeyMaterialFactory.materialize(RegistryKeyMaterialFactory.java:101)

at org.jenkinsci.plugins.docker.workflow.AbstractEndpointStepExecution2.doStart(AbstractEndpointStepExecution2.java:53)

at org.jenkinsci.plugins.workflow.steps.GeneralNonBlockingStepExecution.lambda$run$0(GeneralNonBlockingStepExecution.java:77)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)


Ivan Fernandez Calvo

unread,
Jan 28, 2021, 11:24:18 AM1/28/21
to Jenkins Users
If you are running Jenkins ins a Docker container with the official Docker container, the docker CLI command is not installed and that's your error, you need the docker CLI installed to access a Docker Host. One trick can be to mount the binary of the Docker Host where you are running that Jenkins and the Docker socket, but this configuration is for local testing never for a production environment. Something like this

docker run -it -v $(command -v docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock jenkins:lts


Mark Waite

unread,
Jan 28, 2021, 8:34:16 PM1/28/21
to Jenkins Users
The "Installing Jenkins" page for Docker also provides instructions that will allow a user to run some Docker commands from inside a customer Docker image that they create based on the official Jenkins images.

I agree with Ivan that running the Docker command line interface on the Jenkins controller should not be done in production.  Jobs should run on agents, not on the Jenkins controller.  I think you should use agents that are able to run the Docker images and use separate agents to create Docker images.

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-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/1b2a3994-ad69-47e2-b885-2a24226af8een%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages