我试图在声明性管道中运行docker命令,以在我的从属计算机上安装docker env,我试图使用docker commons插件“ https://plugins.jenkins.io/docker-commons/”,但没有成功。
我在下面的链接中进一步提到了如何使用此插件。
https://automatingguy.com/2017/11/06/jenkins-pipelines-simple-delivery-flow/
我已经在manage jenkins->全局工具配置中配置了docker,但是在我的jenkins声明性管道中找不到如何使用下面的部分,我认为下面的结构/语法将适用于脚本化的jenkins管道
def dockerTool = tool name: 'docker', type:
'org.jenkinsci.plugins.docker.commons.tools.DockerTool'
withEnv(["DOCKER=${dockerTool}/bin"]) {
stages{}
}
有人可以帮忙吗,我如何在詹金斯的声明式管道中使用docker通用工具。 注意:由于与其他项目的标准化,我无法切换到脚本化管道
答案 0 :(得分:0)
这是工作示例
pipeline{
agent any
stages{
stage('test') {
steps{
script{
test_env="this is test env"
withEnv(["myEnv=${test_env}"]){
echo "${env.myEnv}"
}
}
}
}
}
}
答案 1 :(得分:0)
我有种感觉,您不需要使用withEnv
或docker commons
。你见过这个吗? https://www.jenkins.io/doc/book/pipeline/docker/
有很多很好的示例说明如何将Docker与Jenkinsfile一起使用。
我试图回答您的问题(如果我没错的话),如果您要询问脚本withEnv
的声明性等效项,那么您可能正在寻找environment {}
?像这样:
pipeline {
agent any
environment {
DOCKER = "${dockerTool}/bin"
}
stages {
stage('One') {
steps {
// steps here
}
}
}
}
答案 2 :(得分:0)
自Docker Commons v1.17起,这是一个有效的声明式管道解决方案
注意:工具名称dockerTool
是一个关键字,而 docker-19.03.11 是我在Jenkins> Manage Jenkins> Global Tool Configuration页面中给我安装的名称。
pipeline {
agent any
tools {
dockerTool 'docker-19.03.11'
}
stages {
stage('build') {
steps {
sh'''
echo 'FROM mongo:3.2' > Dockerfile
echo 'CMD ["/bin/echo", "HELLO WORLD...."]' >> Dockerfile
'''
script {
docker.withRegistry('http://192.168.99.100:5000/v2/') {
def image = docker.build('test/helloworld2:$BUILD_NUMBER')
}
}
}
}
}
}