我最近继承了一些Jenkins文件的代码库。在其中之一中,我遇到了这种语法
stage('Prepare database for integration tests') {
steps {
container('postgres') {
sh "..."
}
}
}
我们的Jenkins在Openshift上运行,并且该Pod具有多个容器,其中包括该postgres。但是,找不到像这样使用容器或使用container('containerName')
连接到容器的引用。
我尝试用以下内容创建一个单独的管道
container('az-cli') {
try {
sh 'ls'
} catch (error) {
throw error
}
}
ls
列出了代码存储库中的内容,而不是容器。显然container
并没有按照我的预期去做,也找不到任何文档。有人知道这应该做什么吗?
先谢谢了。
答案 0 :(得分:1)
好的,它显然来自Kubernetes插件。此jenkins github repo和此jenkins documentation中有更多文档。
它也正在工作,但是'ls'命令正在欺骗。当我运行实际的Azure命令时,我看到了命令结果,还看到了容器的日志。
谢谢大家。
答案 1 :(得分:0)
如果未记录container(...)方法,则可能是由自定义 library 加载的。
检查管道中的@Library批注,或者它是否不是自动加载的库的一部分。然后,您将在声明该文件的位置找到groovy文件。
更多信息,https://jenkins.io/doc/book/pipeline/shared-libraries/#using-libraries
答案 2 :(得分:0)
如果您想使用容器来运行某个步骤,可以这样做:https://jenkins.io/doc/book/pipeline/docker/#using-multiple-containers
我以前从未见过“容器”关键字。