技术要求
docker -- 应用容器引擎
jenkins -- 基于Java开发的一种持续集成工具
github/git -- 代码托管服务平台
SonarQube -- 代码质量工具
maven -- 项目管理工具
python -- 需要用到脚本
DingTalk -- 钉钉机器人接收消息通知
机器要求
server1 -- jdk安装、jenkins安装(需要使用jdk)
server2 -- docker安装、git安装(需要从github拉取最新代码)、maven安装
server3 -- mysql数据库安装(应用数据库)
server4 -- SonarQube安装
实际情况:一台Tecent2核4G服务器安装部署所有
运行视频
配置流程
1 安装dokcer,docker中部署一个应用、一个数据库
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 2 jenkins安装部署,由于机器内存限制,jenkins部署到了tomcat
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 3 linux安装jdk环境,因为jenkins是java开发的,jenkins连接应用服务器/SonarQube服务器需要依赖java环境
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 4 linux安装git,因为需要使用git命令下载github仓库代码
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 5 linux安装maven,源码下载完需要打包代码
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 6 制作git秘钥,秘钥路径:/root/.ssh
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 7 公钥配置到github上,因为jenkins服务器需要有权限下载代码,测试:ssh [email protected]
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 8 启动tomcat,访问jenkins
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 9 jenkins控制台建立节点,每个节点对应一台linux服务器(jenkins服务器和应用部署服务器为一台服务器,不过不影响)
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 10 jenkins控制台新建任务
任务指定节点:
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 绑定git源码(需要配置ssh私钥):
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 github代码提交触发任务执行:
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 执行shell脚本&配置SonarQube代码扫描:
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 编写部署脚本,上述步骤的deploy.sh文件:
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 钉钉机器人通知:
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 python脚本位置:
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 11 任务执行
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 12 钉钉机器人配置&通知效果
机器人配置:
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 通知效果:
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 13 SonarQube代码扫描详情预览
docker自动化部署_基于docker+jenkins+github+SonarQube实现自动化部署 参考链接
https://www.cnblogs.com/yufeng218/p/8370670.html
https://blog.csdn.net/devops008/article/details/81773736
https://blog.csdn.net/BoomLee/article/details/86676577