我正在尝试设置一个Jenkinsfile,它首先在Docker映像中使用一个构建工具,该工具应该将一个jar文件留在工作区中,然后在该Docker映像之外,使用Jenkins Docker插件围绕该jar文件构建一个Docker映像,并将其发布到我的本地Docker repo。我的管道如下:
pipeline {
agent any
stages {
stage('build') {
agent {
docker {
image 'myrepo:5500/openjdk11_ant_buildenv'
}
}
steps {
sh 'ant'
}
}
stage('Containerize') {
agent any
steps {
script {
withDockerRegistry([url: 'http://myrepo:5500']){
def image = docker.build("myrepo:5500/myimagename", "--pull .");
image.push()
}
}
}
}
}
}我遇到的问题是,第二阶段似乎没有与第一阶段相同的工作区,因此jar文件不存在。
我该怎么做呢?
发布于 2022-01-01 04:26:51
发布于 2022-01-01 21:28:46
秘密似乎是向码头代理添加reuseNode true。这将阻止它为该阶段创建一个新的工作区,因此构建的工件将保留在容器阶段所需的位置。
‘’管道{代理任何阶段{阶段(‘构建’){代理{http://myrepo:5500‘){{映像’myrepo:5500/openjdk11 11_ agent‘reuseNode }}步骤{ sh 'ant’}}}阶段(‘Containerize’){ steps { script { withDockerRegistry(url:‘withDockerRegistry def映像=docker.build’)(“myrepo:5500/myimagename”,“--拉”);image.push(}}}‘。
https://stackoverflow.com/questions/70546882
复制相似问题