gpt4 book ai didi

docker - stash/unstash 将数据从构建容器传输到其他节点(在 jenkins 中)

转载 作者:行者123 更新时间:2023-12-02 17:10:18 25 4
gpt4 key购买 nike

在我的 CI 基础设施中,我有一个 jenkins master 作为容器运行,还有 2 个从站 (vm)。我尝试在节点上的 docker 容器内运行构建,因此在构建过程中,我将目标文件夹隐藏起来,以便稍后在其他节点上使用它。在作业日志中,我可以看到该文件夹​​已成功隐藏。当构建完成时,容器会自动销毁,然后在下一步中,我取消存储该文件夹以在单独的节点中实现另一个阶段,但什么也没有发生。似乎取消存储没有发生任何事情。

请问我如何将我的目标从容器转移到另一个节点甚至主节点???

这是我的管道代码:

node('docker') {
stage('Checkout Code') {
checkout scm
}
stage('Build') {
withMaven( jdk: 'jdk_8', maven: 'maven 3') {
mvn 'clean install'
stash name: 'war', includes: 'x.war'
}
}

node('master') {
stage('test') {
withMaven( jdk: 'jdk_8', maven: 'maven 3') {
unstash : 'war'
sh 'mvn clean test'
}
}
}
}

最佳答案

我怀疑 war 实际上是被隐藏的,因为生成的 war 不应该位于您执行mvn clean install的同一目录中。

我预计 war 将达到目标。您可能需要将 includes: 'x.war' 更改为 includes: 'target/x.war'。或者,转到安装了 war 的 Maven 存储库并从那里存储文件:

withMaven( jdk: 'jdk_8', maven: 'maven 3') {
mvn 'clean install'
dir('<path to war>'){
stash name: 'war', includes: 'x.war'
}
}

关于docker - stash/unstash 将数据从构建容器传输到其他节点(在 jenkins 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47371824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com