我正在配置一个Jenkins控制器来用kubernetes启动代理。当一个从站启动它的管道时,我需要他从控制器读取(或复制)一个maven settings.xml。使用kubernetes插件,我还没有找到这样的方法。
settings.xml
a1o7rhls1#
Jenkins Pipeline:基本步骤可以帮助你解决这个问题。它们提供了一个stash/unstash步骤。这意味着你将settings.xml存储在主节点上,并将其解存储在运行构建的从节点上。我认为目前stash/unstash只支持当前管道工作区的子目录,但你可以通过在存储之前将settings.xml复制到当前工作区来解决这个问题。整个事情可能看起来像这样:
stage('Build') { node('master') { sh 'cp /path/to/master-node-settings-xml .' stash includes: 'settings.xml', name: 'settingsXml' } node('slave') { unstash 'settingsXml' sh 'mv settings.xml /path/to/slave-node-settings-xml' # Start your build here now .. } }
字符串另一种选择是将settings.xml预烘焙到Docker映像中,您正在使用该映像在Kubernetes中启动从站。当然,如果您的settings.xml动态更改或包含任何类型的敏感数据,这不是最佳解决方案(因为如果可能的话,应该避免将敏感信息放入Docker映像中)。
1条答案
按热度按时间a1o7rhls1#
Jenkins Pipeline:基本步骤可以帮助你解决这个问题。它们提供了一个stash/unstash步骤。这意味着你将
settings.xml
存储在主节点上,并将其解存储在运行构建的从节点上。我认为目前stash/unstash只支持当前管道工作区的子目录,但你可以通过在存储之前将settings.xml
复制到当前工作区来解决这个问题。整个事情可能看起来像这样:字符串
另一种选择是将
settings.xml
预烘焙到Docker映像中,您正在使用该映像在Kubernetes中启动从站。当然,如果您的settings.xml
动态更改或包含任何类型的敏感数据,这不是最佳解决方案(因为如果可能的话,应该避免将敏感信息放入Docker映像中)。