在jenkins管道中使用正在运行的容器(jenkins容器)

时间:2020-08-31 14:14:33

标签: git docker jenkins jenkins-pipeline

目前,我正在使用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触发的测试。

感谢您的帮助,谢谢

0 个答案:

没有答案