首页 文章

在docker容器中运行jenkins代理,发出jenkins管道和/var/run/docker.socket

提问于
浏览
1

我创建了用于jenkins代理奴隶的图像这里是:https://hub.docker.com/r/kondaurov/jenkins_agent/~/dockerfile/

比我运行它:

docker run -d -p 2222:22 --name=jenkins_agent -v /var/run/docker.sock:/var/run/docker.sock -v kondaurov/jenkins_agent

然后我在jenkins中创建新节点,并通过ssh成功连接

我尝试运行此管道:

pipeline {

    agent {
            docker {
                label 'agent01'
                image 'hello-world'
            }


    }

    stages {

        stage('Compile') {

            steps {
                sh 'whoami'
                sh 'echo $PATH'

            }

        }


    }

}

agent01 - 是一个带有我的从属图像的容器

但它失败了..

用户启动Alexander Mac重播#18 git rev-parse --is-inside-work-tree #timeout = 10将原点设置为https://github.com/kondaurov-scala/snippets.git git config remote.origin . url https://github.com/kondaurov-scala/snippets.git#timeout = 10获取源...使用GIT_SSH设置凭据git fetch --tags - 从源git --version#timeout = 10获取上游更改进展原点参考文献/头/:参/遥控器/来源/见于库原点分支/存储库原点/主1.1.0看分支看从5d917470103056b70398465c0d8a56b127f9e036 [管道]节点在/ home /詹金斯/上agent01运行获得Jenkinsfile 2个远程分支机构workspace / hello_world_1.1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q [Pipeline] {[Pipeline] stage [Pipeline] {(声明:Checkout SCM)[Pipeline] checkout git rev-parse --is-inside-work-tree #timeout = 10从中获取更改远程Git存储库git config remote.origin.url https://github.com/kondaurov-scala/snippets.g #timeout = 10没有标签的提取从https://github.com/kondaurov-scala/snippets.git获取上游更改git --version #timeout = 10使用GIT_SSH设置凭据git fetch --no-tags --progress https://github.com/kondaurov-scala/snippets.git参/头/:参/遥控器/来源/检出修订5d917470103056b70398465c0d8a56b127f9e036(1.1.0)提交消息: “REF” GIT中配置core.sparsecheckout#超时= 10 git checkout -f 5d917470103056b70398465c0d8a56b127f9e036 git rev-list 5d917470103056b70398465c0d8a56b127f9e036 #timeout = 10 [Pipeline]} [Pipeline] // stage [Pipeline] withEnv [Pipeline] {[Pipeline] stage [Pipeline] {(声明:Agent Setup)[Pipeline] sh [hello_world_1.1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q]运行shell脚本docker pull hello-world使用默认标签:最新最新:从库/ hello-world拉出5b0f327be733:拉动fs层5b0f327be733:验证校验和5b0f327be733:下载完成5b0f327be733:拉完全Di武功:SHA256:b2ba691d8aac9e5ac3644c0788e3d3823f9e97f757f01d2ddc6eb5458df9d801状态:下载更新的图像你好世界:最新的[管道]} [管道] //阶段[管道] SH [hello_world_1.1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q]运行shell脚本泊坞窗检查-f . 你好,世界 . [管道] withDockerContainer agent01似乎容器c6ad60fd4215a35009accd0be49fbe1ebb583b18b12bf87ba80141b63ae9221a内进行运行,但/home/jenkins/workspace/hello_world_1.1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q无法之中[/var/run/docker.sock]不过的/ home /詹金斯/工作区/ hello_world_1找到 . 1000 -w /home/jenkins/workspace/hello_world_1.1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q -v /家:1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q@tmp无法之中[/var/run/docker.sock] $搬运工运行-t -d -u 1000中找到/jenkins/workspace/hello_world_1.1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q:/home/jenkins/workspace/hello_world_1.1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q:rw,z -v /home/jenkins/workspace/hello_world_1.1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q@tmp:/home/jenkins/workspace /hello_world_1.1.0-NAIZYV5H2QFOICXMDYZJM3A6XMQ4YL2QYG5ZWJDDWOEWF27RHL7Q@tmp:rw,z -e ******** ******** -e -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** --entrypoint cat hello-world [Pipeline] // withDockerContainer [Pipeline]} [Pipeline] // withEnv [Pipeline]} [Pipeline] // node [Pipeline]管道结束java.io.IOException:无法运行图像'hello-world' . 错误:docker:来自守护程序的错误响应:oci运行时错误:container_linux.go:262:启动容器进程导致“exec:\”cat \“:$ PATH中找不到可执行文件” . 在org.jenkinsci.plugins.docker.workflow.client.DockerClient.run(DockerClient.java:138)在org.jenkinsci.plugins.docker.workflow.WithContainerStep $ Execution.start(WithContainerStep.java:179)在org.jenkinsci位于org.jenkinsci.plugins.workflow.cps.CpsScript的org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:150)上的.plugins.workflow.cps.DSL.invokeStep(DSL.java:224) .invokeMethod(CpsScript.java:108)在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:19)在org.jenkinsci.plugins.docker . workflow.Docker $ Image.inside(JAR:文件:/Users/Shared/Jenkins/Home/plugins/docker-workflow/WEB-INF/lib/docker-workflow.jar /组织/ jenkinsci /插件/泊坞窗/流程/ Docker.groovy:128)在org.jenkinsci.plugins.docker.workflow.Docker.node(jar:file:/ Users / Shared / Jenkins / Home / plugins / docker-workflow / WEB-INF / lib / docker-workflow . jar!/org/jenkinsci/plugins/docker/workflow/Docker.groovy:63)在org.jenkinsci.plugins.docker.workflow.Docker $ Image.inside(jar:file:/ Users / Shared / Jenkins / Home / plugins) /docker-workflow/WEB-INF/lib/docker-workflow.jar!/org/jenkinsci/plugins/docker/workflow/Docker.groovy:116)org.jenkinsci.plugins.pipeline.modeldefinition.agent.impl.DockerPipelineScript .runImage(JAR:文件:/Users/Shared/Jenkins/Home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar / org / jenkinsci / plugins / pipeline / modeldefinition / agent / impl / DockerPipelineScript.groovy:57)at org.jenkinsci.plugins.pipeline.modeldefinition.agent.impl.AbstractDockerPipelineScript.configureRegistry(jar:file:/ Users / Shared / Jenkins /在org.jenkinsci的主页/ plugins / pipeline-model-definition / WEB-INF / lib / pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/agent/impl/AbstractDockerPipelineScript.groovy:68) . plugins.pipeline.modeldefinition.agent.impl.AbstractDockerPipelineScript.run(JAR:文件:/Users/Shared/Jenkins/Home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar /组织/ jenkinsci /插件/管道/ modeldefinition /剂/ IMPL / AbstractDockerPipelineScript.groovy:54)在org.jenkinsci.plugins.pipeline.modeldefinition.agent.CheckoutScript.checkoutAndRun( jar :文件:/用户/共享/詹金斯/主页/插件/管道模型扩展/ WEB-INF / lib / pipeline-model-extensions.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/agent/CheckoutScript.groovy:60)at cps.t com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)中的ransform(Native Method)位于com.cloudbees.groovy.cps.impl.FunctionCallBlock $ ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)at at com.cloudbees.groovy.cps.impl.FunctionCallBlock $ ContinuationImpl.fixArg(FunctionCallBlock.java:82)at sun.reflect.GeneratedMethodAccessor603.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at at java.lang.reflect.Method.invoke(Method.java:483)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)在org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261)在com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)在org.jenkinsci.plugins.workflow.cps.SandboxContinuable . 访问$在org.jenkinsci.plugins.workflow.cps.SandboxContinuable $ 1.call(SandboxContinuable.java:35)001(SandboxContinuable.java:19)在org.jenkinsci.plugins.workflow.cps.SandboxContinuable $ 1.call(SandboxContinuable . java:32)org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:32)at org .jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)在org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:330)在org.jenkinsci.plugins.workflow.cps .cpsThreadGroup.access $ 100(CpsThreadGroup.java:82)org.jenkinsci.plugins.workfl的org.jenkinsci.plugins.workflow.cps.CpsThreadGroup $ 2.call(CpsThreadGroup.java:242) ow.cps.CpsThreadGroup $ 2.call(CpsThreadGroup.java:230)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:112)at jenkins.util.ContextResettingExecutorService $ 1.run(ContextResettingExecutorService.java:28)at java.util.concurrent.Executors $ RunnableAdapter.call(Executors的.java:511)在java.util.concurrent.FutureTask.run(FutureTask.java:266)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)在java.util.concurrent.ThreadPoolExecutor中的$ Worker . 在java.lang.Thread.run上运行(ThreadPoolExecutor.java:617)(Thread.java:745)完成:失败

1 回答

  • 1

    JENKINS-43590,也许吧 .

    我的一般建议:如果 Image.inside 第一次尝试时有效,那很好 . 如果没有,请不要浪费时间尝试使其工作 . 自己运行 docker 命令,在Jenkins之外提前测试 .

相关问题