当前位置: 首页 > 知识库问答 >
问题:

Jenkins Docker管道插件引用旧JENKINS_HOME

胡鸿远
2023-03-14
java.io.IOException: Directory '/var/lib/jenkins' could not be created
    at org.apache.commons.io.FileUtils.openOutputStream(FileUtils.java:363)
    at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:1928)
    at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:1951)
    at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:1911)
    at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryToken$1.call(DockerRegistryToken.java:113)
    at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryToken$1.call(DockerRegistryToken.java:82)
    at hudson.remoting.LocalChannel.call(LocalChannel.java:45)
    at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryToken.newKeyMaterialFactory(DockerRegistryToken.java:82)
    at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint.newKeyMaterialFactory(DockerRegistryEndpoint.java:219)
    at org.jenkinsci.plugins.docker.workflow.RegistryEndpointStep$Execution.newKeyMaterialFactory(RegistryEndpointStep.java:65)
    at org.jenkinsci.plugins.docker.workflow.AbstractEndpointStepExecution.start(AbstractEndpointStepExecution.java:44)
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:229)
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:153)
    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.withRegistry(jar:file:/mnt/jenkins/jenkins/plugins/docker-workflow/WEB-INF/lib/docker-workflow.jar!/org/jenkinsci/plugins/docker/workflow/Docker.groovy:37)
    at ___cps.transform___(Native Method)
    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.GeneratedMethodAccessor40.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.SandboxContinuable.access$001(SandboxContinuable.java:19)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:35)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:32)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:32)
    at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:331)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:82)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:243)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:231)
    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)
    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

共有1个答案

陆英毅
2023-03-14

TLDR;解决方案:将任何凭据文件和dirs移回原始位置,或者更改jenkins用户主页目录[usermod-d/new/dir jenkins](这就是我所做的)。确保首先将文件移到一边,因为usermod命令不能在现有目录上运行。

经过一番摆弄,我发现了问题所在。也许这对其他人有帮助。

jenkins用户的主目录仍然设置在/var/lib/jenkins。这是存储dockerhub凭据的目录。在作业过程中,Jenkins试图访问旧位置上的凭据,因为默认情况下,它位于Jenkins用户主目录中。

 类似资料:
  • 问题内容: 我想在管道作业中使用EnvInject插件。因此,我可以设置复选框“为运行准备一个环境”,但是 没有动作“注入环境变量”,就像在自由式作业中一样。我在“属性内容”块中声明了变量:在此处输入图片说明 如何使用EnvInject在管道作业中注​​入环境变量? 问题答案: 如果在“属性内容”块中声明了以下变量: 然后,您可以将它们放入管道中,以便:

  • 我正在研究文件操作插件 - 文件复制在詹金斯管道中的操作(詹金斯版本 - v2.73.2,詹金斯管道 - 2.5),我需要将文件从一个位置复制到具有不同文件夹结构的另一个位置。 预期: C:\workspace\Hello - F:\测试\样品 - 下面是我正在使用的命令,它正在复制整个Hello目录,而不是它按预期的方式运行。 F:\测试\示例\工作区\您好 - 感谢您的参与。

  • 由于一些公司的变化,我们被迫改用詹金斯作为CI工具。虽然这似乎不是一个坏主意,但由于缺乏对非Java应用程序的支持,尤其是对管道(旧的工作流)插件的支持,以及我们对Jenkins知识的缺乏(目前还没有),我们遇到了很多麻烦。 但是出现错误: java.lang.IllegalArgumentException:预期的命名参数,但在org.jenkinsci.plugins.workflow.cps

  • 我为Jenkins (2.176.3)安装了电子邮件扩展插件(2.66)以便在管道中使用,我正在https://medium . com/@ Gustavo . guss/Jenkins-sending-Email-on-post-build-938 b 236545 D2上尝试这个示例 但是我有以下错误: 执行always post条件时出错:java.lang.NoSuchMethodErro

  • 传递参数 链接管道 我们可以将多个管道连接在一起,以便在一个表达式中使用多个管道。

  • 在第一次尝试一个包含4个阶段和1个作业的旧管道时,我遇到了一个故障,当管道仅在运行时重试步骤4和步骤1 我的gitlab ci。yml 或者,在我的git工作流程中,将我的主机还原为所需的提交不是更合乎逻辑吗?