目录
一、简介
DevOps
(Development和Operations的组合词)是一系列做法和工具,可以使 IT 和软件开发团队之间的流程实现自动化。其中,随着敏捷软件开发日趋流行,持续集成
(CI) 和持续交付
(CD) 已经成为该领域一个理想的解决方案。在 CI/CD
工作流中,每次集成都通过自动化构建来验证,包括编码、发布和测试,从而帮助开发者提前发现集成错误,团队也可以快速、安全、可靠地将内部软件交付到生产环境。
我们借助KubeSphere
来学习DevOps
:https://kubesphere.com.cn/docs/pluggable-components/devops/
- 拉取代码
- 项目编译
- 构建镜像
- 推送镜像仓库
- 部署k8s
二、DevOps流程
创建工程:
创建流水线:
直接创建。
点击 编辑流水线:
2.1 拉取代码
点击运行,查看日志,第一步代码已经拉取成功:
2.2 项目编译
使用mvn clean package -Dmaven.test.skip=true
进行编译打包:
点击运行流水线:
编译打包成功:
注意:
在使用mvn clean pacgage Dmaven.test.skip=true
命令进行编译打包时,Maven会从中央仓库去下载依赖,这样速度会很慢,我们需要修改Maven的配置文件ks-devops-agent
:
加上阿里云的镜像仓库:
<!-- 阿里云 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
并且已经下载过的依赖下次编译打包不会再重复下载了:
2.3 构建镜像
使用docker build -t helloworld:latest -f Dockerfile .
命令创建镜像
查看运行日志:
如果有多个微服务可以点击添加并行阶段
。
2.4 推送镜像仓库
我们编辑Jenkinsfile
文件:
在environment
定义环境变量,可以直接使用$
来引用。
$BUILD_NUMBER 是版本号。
创建登录凭证:
推送镜像的Jenkinsfile文件: