docker - Jenkins 的示例管道显然无法正常工作

标签 docker jenkins jenkins-plugins

我已经安装了装有Jenkins 2.190.1的Ubuntu 18.04,并尝试运行简单的管道脚本

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

运行此命令会拉出镜像,然后似乎卡住并且什么也没发生,但是作业仍在进行中。

当我取消工作时,日志显示
$ docker run -t -d -u 122:127 -w /var/lib/jenkins/workspace/test-pipe -v /var/lib/jenkins/workspace/test-pipe:/var/lib/jenkins/workspace/test-pipe:rw,z -v /var/lib/jenkins/workspace/test-pipe@tmp:/var/lib/jenkins/workspace/test-pipe@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 ******** node:7-alpine cat
$ docker top 154c572b654031349f2b338c22b932ced79339e48ad79a06e7665db1dfb9ae02 -eo pid,comm
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] sh // here it seems nothing is happening and no progress is happening
Aborted by admin
Sending interrupt signal to process
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
$ docker stop --time=1 154c572b654031349f2b338c22b932ced79339e48ad79a06e7665db1dfb9ae02
$ docker rm -f 154c572b654031349f2b338c22b932ced79339e48ad79a06e7665db1dfb9ae02
[Pipeline] // withDockerContainer
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
java.io.IOException: failed to run ps
    at org.jenkinsci.plugins.docker.workflow.WithContainerStep$Decorator$1.kill(WithContainerStep.java:342)
    at org.jenkinsci.plugins.durabletask.FileMonitoringTask$FileMonitoringController.stop(FileMonitoringTask.java:345)
    at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.stop(DurableTaskStep.java:512)
    at org.jenkinsci.plugins.workflow.cps.CpsThread.stop(CpsThread.java:308)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$6.onSuccess(CpsFlowExecution.java:1151)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$6.onSuccess(CpsFlowExecution.java:1140)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$4$1.run(CpsFlowExecution.java:907)
    at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:37)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    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.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Finished: ABORTED

我的设置有什么问题?还是要研究什么问题?

谢谢

最佳答案

显然Alpine Node容器没有引导到 shell 中。您需要在脚本中指定 shell 程序:

sh '''#!/bin/sh
    node --version
'''

关于docker - Jenkins 的示例管道显然无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58745776/

相关文章:

jenkins - 管道参数和jenkins GUI参数如何协同工作?

jenkins - 如何在Hudson/Jenkins构建输出控制台中显示超链接

shell - 在 Jenkins 中构建后执行 Shell 脚本

node.js - 为什么docker容器消耗大量内存?

ssl - 如何解决 Jenkins 插件安装问题?

Docker secret 作为环境变量传递

node.js - SonarQube 分析未显示代码覆盖率

groovy - 为什么这个 Groovy 脚本在 Jenkins 中无法获取作业参数?

docker - 将 docker tar 文件转换为奇异图像?

docker - 在另一个容器的构建过程中无法解析Docker容器