Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Jenkins代理无法运行程序“;“码头工人”:错误=2,没有这样的文件或目录_Docker_Jenkins_Jenkins Pipeline_Jenkins Declarative Pipeline_Build Pipeline Plugin - Fatal编程技术网

Docker Jenkins代理无法运行程序“;“码头工人”:错误=2,没有这样的文件或目录

Docker Jenkins代理无法运行程序“;“码头工人”:错误=2,没有这样的文件或目录,docker,jenkins,jenkins-pipeline,jenkins-declarative-pipeline,build-pipeline-plugin,Docker,Jenkins,Jenkins Pipeline,Jenkins Declarative Pipeline,Build Pipeline Plugin,我和我的詹金斯经纪人有一种奇怪的行为。我有一个主机和一个单独的构建代理,可以访问docker 在生成代理上运行以下管道脚本时: node { sh "id" sh "echo $PATH" sh "docker ps" docker.image("node:latest").inside("") { sh "npm --version" } } 我得到以下输出: Running on docker-agent in /home/jenki

我和我的詹金斯经纪人有一种奇怪的行为。我有一个主机和一个单独的构建代理,可以访问docker

在生成代理上运行以下管道脚本时:

node {
    sh "id"
    sh "echo $PATH"
    sh "docker ps"
    docker.image("node:latest").inside("") {
        sh "npm --version"
    }
}
我得到以下输出:

Running on docker-agent in /home/jenkins/workspace/test
[Pipeline] {
[Pipeline] sh
[test] Running shell script
+ id
uid=1000(jenkins) gid=1000(jenkins) groups=900(docker),1000(jenkins),1000(jenkins)
[Pipeline] sh
[test] Running shell script
+ echo /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[Pipeline] sh
[test] Running shell script
+ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[Pipeline] sh
[test] Running shell script
+ docker inspect -f . node:latest
.
[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)
Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to docker-agent
        at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)
        at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:357)
        at hudson.remoting.Channel.call(Channel.java:955)
        at hudson.Launcher$RemoteLauncher.launch(Launcher.java:1058)
        at hudson.Launcher$ProcStarter.start(Launcher.java:454)
        at org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:296)
        at org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:277)
        at org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:274)
        at org.jenkinsci.plugins.docker.workflow.client.DockerClient.version(DockerClient.java:246)
        at org.jenkinsci.plugins.docker.workflow.WithContainerStep$Execution.start(WithContainerStep.java:141)
        at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:270)
        at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:180)
        at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
        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:20)
        at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
        at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
        at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
        at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
        at com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:46)
        at com.cloudbees.groovy.cps.Next.step(Next.java:83)
        at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
        at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
        at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122)
        at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261)
        at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
        at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:332)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232)
        at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
        at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
        at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
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:935)
    at hudson.Launcher$ProcStarter.start(Launcher.java:454)
    at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1312)
    at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1265)
    at hudson.remoting.UserRequest.perform(UserRequest.java:212)
    at hudson.remoting.UserRequest.perform(UserRequest.java:54)
    at hudson.remoting.Request$2.run(Request.java:369)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    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)
Finished: FAILURE
在/home/jenkins/workspace/test中的docker代理上运行
[管道]{
[管道]上海
[测试]运行shell脚本
+身份证
uid=1000(詹金斯)gid=1000(詹金斯)组=900(docker),1000(詹金斯),1000(詹金斯)
[管道]上海
[测试]运行shell脚本
+echo/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[管道]上海
[测试]运行shell脚本
+docker ps
容器ID映像命令已创建状态端口名称
[管道]上海
[测试]运行shell脚本
+docker inspect-f.节点:最新
.
[管道]带DockerContainer
[管道]//withDockerContainer
[管道]}
[管道]//节点
[管道]管道末端
java.io.IOException:error=2,没有这样的文件或目录
位于java.lang.UNIXProcess.forkAndExec(本机方法)
位于java.lang.UNIXProcess(UNIXProcess.java:247)
在java.lang.ProcessImpl.start(ProcessImpl.java:134)处
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
另外:hudson.remoting.Channel$CallSiteStackTrace:对docker代理的远程调用
位于hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)
位于hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:357)
在hudson.remoting.Channel.call(Channel.java:955)
位于hudson.Launcher$RemoteLauncher.launch(Launcher.java:1058)
在hudson.Launcher$ProcStarter.start(Launcher.java:454)
位于org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:296)
位于org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:277)
位于org.jenkinsci.plugins.docker.workflow.client.DockerClient.launch(DockerClient.java:274)
位于org.jenkinsci.plugins.docker.workflow.client.DockerClient.version(DockerClient.java:246)
位于org.jenkinsci.plugins.docker.workflow.WithContainerStep$Execution.start(WithContainerStep.java:141)
位于org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:270)
位于org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:180)
位于org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
位于org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
位于com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
位于com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
在com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.DispatcherArg(FunctionCallBlock.java:109)上
位于com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
位于sun.reflect.GeneratedMethodAccessor94.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
位于com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:46)
位于com.cloudbees.groovy.cps.Next.step(Next.java:83)
com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
位于org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122)
位于org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261)
位于com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
位于org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)
位于org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:332)
位于org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83)
位于org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244)
位于org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232)
在org.jenkinsci.plugins.workflow.cps.cpsvmecutorservice$2.call(cpsvmecutorservice.java:64)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
在hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
位于jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
位于jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
原因:java.io.IOException:无法运行程序“docker”:错误=2,没有这样的文件或目录
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
在hudson.Proc$LocalProc.(Proc.java:249)
在hudson.Proc$LocalProc.(Proc.java:218)
位于hudson.Launcher$LocalLauncher.launch(Launcher.java:935)
在hudson.Launcher$ProcStarter.start(Launcher.java:454)
位于hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1312)
在hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1265)
在hudson.remoting.UserRequest.perform(UserRequest.java:212)
在hudson.remoting.UserRequest.perform(UserRequest.java:54)
在hudson.remoting.Request$2.run(Request.java:369)
在hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
在爪哇
node {
    sh "id"
    sh "echo $PATH"
    sh "docker ps"
    docker.image("node:latest").inside("") { c ->
        sh "npm --version"
    }
}
    <key>EnvironmentVariables</key>
    <dict>
      <key>PATH</key>
      <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    </dict>