目前,我正在使用docker和jenkins以及其他一些工具来设置CI / CD-Toolchain。
但是,我的jenkins管道现在运行了,因此每次触发作业时,都会在本地映像中构建一个新容器。 这样做还不错,但是以这种速率,每次都必须“从头开始”构建容器,这需要花费几秒钟的时间。
我现在的方法是,尝试重用一个已经存在的容器,以再次执行相同的操作,但又进行另一个git checkout。
但是,因为我使用的是带有git-checkout的脚本化管道,所以我始终会构建一个新容器。 我不想在主机或仅运行现有容器的任何设备上创建脚本,因为最终必须更新容器。 我想在jenkins脚本化管道之外使用现有容器。 有可能吗?
到目前为止我的管道:
node {
checkout([
$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'GitLFSPull'],
[$class: 'CleanCheckout']],
submoduleCfg: [],
userRemoteConfigs: [
[credentialsId: //blank :) //,
url: //blank :) // ]]]
)
def myImage = docker.build("vectorcast")
myImage.inside{
sh label: '', script: 'sh /vcast/run-tests.sh'
}
}
出于解释目的: 首先,我退出git项目,因为我需要保存的文件来构建映像(安装程序等)。 然后,我根据该图像构建一个容器,并执行一些由sh触发的测试。
感谢您的帮助,谢谢