首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Docker PowerShell镜像的getting文件被挂起

带有Docker PowerShell镜像的getting文件被挂起
EN

Stack Overflow用户
提问于 2021-11-18 01:57:02
回答 1查看 72关注 0票数 0

当从jenkinsfile调用Docker powershell时,它会继续执行,并且作业不会终止。

代码语言:javascript
复制
pipeline {
            agent {
        
                    docker {            
                                image 'mcr.microsoft.com/azure-powershell'
                                args "--mount type=bind,src=/opt,dst=/opt -i -t --entrypoint=''"
                            }
                    }

          
    stages {
            stage('PwShell') {
                    steps {
                        powershell(returnStdout: true, script: 'Write-Output "PowerShell is mighty!"')
                    }
                }
            }
}

jenkin-job-hang

EN

回答 1

Stack Overflow用户

发布于 2021-11-22 09:20:15

由于您没有提供任何日志详细信息,因此很难将错误定位为卡住的原因。通常,对于Jenkins声明性管道,如下所示-

代码语言:javascript
复制
pipeline {
    agent {
        docker { image '...abc.com' }
    }
    stages {
        stage('Test') {
            steps {
                sh 'node --version'
            }
        }
    }
}

当管道执行时,Jenkins将自动启动指定的容器并执行其中定义的步骤:

代码语言:javascript
复制
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] sh
[guided-tour] Running shell script
+ node --version
v14.15.0
[Pipeline] }
[Pipeline] // stage
[Pipeline] }

由于您在这些步骤中停留在PowerShell行中,这意味着没有正确设置这些步骤。

如果检查此Microsoft PowerShell Support for Pipeline文档,您会发现默认情况下,returnStdout返回默认编码为UTF-8的标准输出流。并且写输出 cmdlet返回输出流。

您应该能够通过按照如下所示的代码片段更改PowerShell行来解决问题。

代码语言:javascript
复制
steps {
    def msg = powershell(returnStdout: true, script: 'Write-Output "PowerShell is mighty!"')
    println msg
}

有关PowerShell步骤的更多详细操作,请查看上述同一文档的example部分。我还建议阅读此Using Docker with Pipeline文档以获取更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70013670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档