标签:CI gitlab Container Runner 标签 GitLab ci Build Docker
gitlab-ci工作流程图:
调度机制:
A:打上tag标签,就会调度到指定节点
B:未打上标签,会有公平调度算法
Executor
Docker
将Executor连接到Docker Daemon,并在一个单独容器中跑每一次的构建过程,并使用在.gitlab-ci.yml文件中定义的镜像,Docker Executor具体是通过config.toml文件来配置的。
Kuberentes
让Runner连接到连Kubernetes API Server,为每一个Job动态创建一个Pod来执行GitLab CI构建过程。
且此Pod除了包含固有的Infra Container外,还一定会包含Build Container和Help Container,另外,可能包含Service Container。简单而言,Build Container用于执行.gitlab-ci.yml文件中在stage标签中定义的脚本。Help Container则用于辅助Build Container的执行构建工作,具体是负责git和certificate store相关的操作。最后Service Container的用途则对应着.gitlab-ci.yml文件中定义的service标签,即一个辅助容器,为Build Container提供服务,其基本实现原理是Docker Link。
最后,每一个Job都会包含四个阶段(Job构建过程的生命周期):Prepare、Pre-Build、Build和Post-Build。这几个阶段的具体作用,我在这里就不阐述了,比较简单,也可以在源码中找到。
标签:CI,gitlab,Container,Runner,标签,GitLab,ci,Build,Docker 来源: https://blog.csdn.net/qq_42997214/article/details/122490953
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。