Jekins构建与Docker部署
前言:
有关Jenkins的介绍以及CICD的过程可以参考 浅谈CICD持续集成、持续部署的流程
代码构建主要由以下几个阶段构成,例如开发、打包、扫描、容器化部署等阶段。
一、开发阶段
- 开发者先创建分支,开发代码,提交代码(git add-commit-push)
- 其他开发者在本地未有该代码的情况下,git pull代码,最后提交代码,遇到冲突,则选择合并代码。
二、Maven阶段
- mvn clean install,该命令执行顺序如下
- 删除已有的target目录
- 执行资源文件的处理
- 编译源代码,将生成的class文件存放至target/classes目录中
- 执行测试资源文件的处理
- 编译测试目录下的源代码,将生成的class文件存放至target/test-classes目录中
- 运行测试用例,如果不想运行测试用例,可以指定-Dmaven.test.skip=true
- 将项目打包成jar
- 将jar包和pom文件安装到本地仓库中
三、sonar-scanner阶段
- 执行./sonar-scanner执行静态代码扫描,扫描后在web界面查看扫描的结果信息。
四、Docker阶段
- docker build
- 指定镜像名称 如yang:5000/plm
- docker build -t yang:5000/plm 依据Dockerfile构建该镜像,并通过-t指定镜像仓库和名称
- registry/harbor仓库使用clair镜像扫描。对镜像扫描感兴趣的请移步我的这篇文章 【Docker】镜像安全扫描工具clair与clairctl
- docker push yang:5000/plm 将该镜像push到私有仓库中
- docker pull yang:5000/plm 运行该镜像的主机将镜像拉取下来
- docker run -d yang:5000/plm 运行该镜像,通常需要使用
- -e key:value添加运行时参数
- -restart=always 一旦容器挂掉,则立即重启
- --net=host 让容器共享宿主机的网络模式,这种模式只支持在linux上使用。使用此模式的容器,不需要使用-p来映射端口
未完待续...