GitLab CI/CD 從入門到實(shí)戰(zhàn)
定 價(jià):79.8 元
叢書名:CSDN開發(fā)者文庫(kù)
- 作者:龐孟臣
- 出版時(shí)間:2023/4/1
- ISBN:9787115611635
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁(yè)碼:177
- 紙張:
- 版次:01
- 開本:16開
本書主要介紹GitLab CI/CD的相關(guān)內(nèi)容。首先介紹GitLab CI/CD的基礎(chǔ)知識(shí),包括CI/CD的幾個(gè)基本概念(pipeline、stages、job、GitLab Runner和.gitlab-ci.yml文件);然后介紹GitLab CI/CD的35個(gè)關(guān)鍵詞、每個(gè)關(guān)鍵詞的語(yǔ)法及其使用場(chǎng)景,并給出一些示例;最后介紹CI/CD的實(shí)踐,通過(guò)3種不同的項(xiàng)目詳細(xì)講解各種部署方式,包括微服務(wù)架構(gòu)項(xiàng)目流水線開發(fā)、GitLab CI/CD與Kubernetes的集成,以及如何將項(xiàng)目部署到Kubernetes集群中等。本書還給出了兩個(gè)附錄,分別是GitLab CI/CD中的預(yù)設(shè)變量和GitLab CI/CD測(cè)試題。
本書適用于想要提高研發(fā)團(tuán)隊(duì)的軟件集成、軟件交付效率的開發(fā)和運(yùn)維人員。
1.國(guó)內(nèi)少有的系統(tǒng)講解GitLab CI/CD的圖書,從理論到落地,內(nèi)容豐富實(shí)用
2.作者為CSDN認(rèn)證技術(shù)專家,網(wǎng)名"拿我格子衫來(lái)",前端領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,擁有過(guò)硬的技術(shù)實(shí)力
3.初學(xué)者了解GitLab CI/CD的有效工具書,代碼可在作者博客和代碼倉(cāng)庫(kù)檢索到,方便學(xué)習(xí)
龐孟臣 (網(wǎng)名:拿我格子衫來(lái))滴普科技高級(jí)前端開發(fā)人員,主要從事一線軟件開發(fā)、CI/CD 工作流搭建等工作。工作之余,他熱衷技術(shù)分享,是CSDN 前端領(lǐng)域優(yōu)秀創(chuàng)作者,先后出品了“Monaco Editor 教程”“GitLab CI/CD 教程”“Node-RED 教程”等專欄。已申請(qǐng)技術(shù)專利 6 項(xiàng)。
第 1章 認(rèn)識(shí)GitLab CI/CD 1
1.1 CI/CD的含義 2
1.2 GitLab CI/CD簡(jiǎn)介 2
1.3 GitLab CI/CD的幾個(gè)基本概念 3
1.4 小結(jié) 6
第 2章 CI/CD環(huán)境GitLab Runner 7
2.1 介紹 7
2.2 安裝GitLab Runner 8
2.2.1 使用Docker安裝GitLab Runner 8
2.2.2 在Linux系統(tǒng)上安裝GitLab Runner 9
2.3 注冊(cè)runner 9
2.4 不同執(zhí)行器的特點(diǎn) 12
2.5 配置runner 14
2.6 runner的工作流程 17
2.7 小結(jié) 18
第3章 流水線內(nèi)容.gitlab-ci.yml 19
3.1 存放位置 19
3.2 新建與編輯 20
3.3 流水線的結(jié)構(gòu) 23
3.4 簡(jiǎn)單流水線示例 24
3.5 關(guān)鍵詞 26
3.6 小結(jié) 27
第4章 初階關(guān)鍵詞 28
4.1 stages 29
4.2 stage 29
4.3 script 31
4.4 cache 32
4.5 image 35
4.6 tags 35
4.7 variables 37
4.7.1 在.gitlab-ci.yml文件中定義變量 37
4.7.2 在CI/CD設(shè)置中定義變量 38
4.7.3 預(yù)設(shè)變量 40
4.8 when 41
4.9 artifacts 42
4.10 before_script 44
4.11 after_script 44
4.12 only與except 44
4.12.1 only:refs/except:refs 45
4.12.2 only:variables/except:variables 46
4.12.3 only:changes/except:changes 47
4.12.4 only:kubernetes/except:kubernetes 47
4.13 小結(jié) 48
第5章 中階關(guān)鍵詞 49
5.1 coverage 49
5.2 dependencies 50
5.3 allow_failure 51
5.4 extends 52
5.5 default 54
5.6 inherit 55
5.7 interruptible 57
5.8 needs 59
5.9 pages 62
5.10 parallel 63
5.11 retry 65
5.12 timeout 66
5.13 release 66
5.14 小結(jié) 67
第6章 高階關(guān)鍵詞 68
6.1 rules 68
6.1.1 rules:if 69
6.1.2 rules:changes 69
6.1.3 rules:exists 70
6.1.4 rules:allow_failure 70
6.1.5 rules:variables 71
6.2 workflow 72
6.3 trigger 73
6.4 include 74
6.4.1 include:local 75
6.4.2 include:file 75
6.4.3 include:remote 76
6.4.4 include:template 77
6.5 resource_group 77
6.6 environment 80
6.6.1 environment:name 81
6.6.2 environment:url 81
6.6.3 environment:on_stop 83
6.6.4 environment:action 85
6.6.5 environment:auto_stop_in 86
6.7 services 86
6.8 secrets 89
6.9 dast_configuration 90
6.10 小結(jié) 91
第7章 GitLab CI/CD部署前端項(xiàng)目 92
7.1 準(zhǔn)備工作 92
7.2 定義.gitlab-ci.yml的公共配置 94
7.3 安裝階段 94
7.4 測(cè)試階段 96
7.5 編譯階段 99
7.6 部署階段 100
7.6.1 使用Docker部署 100
7.6.2 使用阿里云的OSS部署 104
7.6.3 遠(yuǎn)程服務(wù)器部署 106
7.7 流水線優(yōu)化 108
7.7.1 提取公共配置 109
7.7.2 多環(huán)境部署 109
7.7.3 自動(dòng)取消舊流水線 110
7.7.4 部署凍結(jié) 112
7.7.5 定時(shí)部署 114
7.7.6 在線調(diào)試流水線 115
7.8 小結(jié) 118
第8章 Java復(fù)雜微服務(wù)應(yīng)用的CI/CD方案 119
8.1 復(fù)雜應(yīng)用現(xiàn)狀 120
8.2 CI/CD方案 120
8.3 菲茲商城項(xiàng)目 121
8.3.1 Spring Boot后端應(yīng)用 121
8.3.2 React前端應(yīng)用 123
8.4 前、后端單獨(dú)構(gòu)建的流水線 125
8.5 構(gòu)建單鏡像 129
8.5.1 前端UI流水線 130
8.5.2 后端服務(wù)流水線 132
8.6 使用分布式緩存MinIO 134
8.6.1 使用Docker安裝MinIO 135
8.6.2 配置GitLab Runner使用MinIO存儲(chǔ)緩存 138
8.7 多項(xiàng)目微服務(wù)依賴構(gòu)建單應(yīng)用 140
8.7.1 項(xiàng)目背景及軟件架構(gòu) 140
8.7.2 多項(xiàng)目同時(shí)構(gòu)建 141
8.7.3 依賴構(gòu)建 143
8.7.4 自由選擇分支tag構(gòu)建 144
8.7.5 運(yùn)行流水線 145
8.8 小結(jié) 147
第9章 部署Python應(yīng)用到Kubernetes中 148
9.1 Kubernetes簡(jiǎn)介 148
9.1.1 命名空間Namespace 149
9.1.2 服務(wù)Service 149
9.1.3 工作負(fù)載Deployment 150
9.1.4 命令行管理工具kubectl 150
9.2 持續(xù)部署方案設(shè)計(jì) 150
9.3 配置kubectl 151
9.4 Python項(xiàng)目配置 154
9.5 流水線開發(fā) 157
9.5.1 構(gòu)建并推送Docker鏡像 157
9.5.2 在流水線中使用kubectl鏡像 158
9.6 流水線優(yōu)化 162
9.6.1 增加釘釘通知 163
9.6.2 外部觸發(fā)流水線 165
9.6.3 .gitlab-ci.yml權(quán)限管控 167
9.6.4 安全部署 168
9.6.5 大項(xiàng)目?jī)?yōu)化 169
9.7 小結(jié) 172
附錄1 GitLab CI/CD中的預(yù)設(shè)變量 173
附錄2 GitLab CI/CD測(cè)試題 176