51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第1张

自动化部署(持续集成/CI+持续交付/CD)是一个软件开发的趋势,是对DevOps的一个很好的帮助发展推进。今天实践的是基于Docker+Jenkins+LNMP+码云,实现PHP代码的自动化部署过程。

环境配置

操作系统:CentOS Linux release 7.6.1810 
Docker 版本:19.03.5 
Jenkins 版本:2.204.1 
Nginx 版本:1.15.5 
PHP 版本:7.2.26 
MySQL 版本:8.0.18 
Redis 版本:5.0.5   
码云:代码仓库

Docker安装

请参考这篇文章:CentOS 安装 docker

Docker安装LNMP环境

请参考这篇文章:Dockerfile 方式定制 lnmp 环境

Docker安装Jenkins

请参考这篇文章:Docker 搭建 Jenkins 实现自动部署

码云仓库准备

创建项目仓库

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第2张


Jenkins准备

安装ssh插件

因为构建项目式,需要执行服务器的一些shell命令,所以采用ssh登录方式与远程服务器进行通信。 
1. 系统管理->插件管理 
2. 搜索:ssh,安装即可

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第3张



Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第4张


新建工程任务

任务名称不能是中文哦,选择第一个:Freestyle project 自定义项目

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第5张


工程任务配置

1. 源码管理选择:git 
2. Repository URL:仓库地址(我的是码云仓库) 
3. Credentials选择添加 
4. 添加凭据 
5. 配置仓库私钥(具体可查看码云的仓库密钥管理帮助)

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第6张



Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第7张


凭据配置成功后,选择上一步凭据配置的Username即可,这下如果成功连接上仓库地址,则不会报错了。

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第8张


构建触发器选择:Github hook trigger for GITScm polling

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第9张


构建环境:Use secret text(s) or file(s) //私密方式传输文件 
凭据:选择指定凭据git

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第10张


配置ssh

1. 系统管理->系统配置 
2. 配置远程服务器ssh相关信息

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第11张



Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第12张


配置构建shell脚本

构建:Execute shell script on remote host using ssh //构建时执行远程服务器shell脚本 
1. 填写SSH site //远程服务器ssh登录 
2. Command //shell脚本 
备注: 
因为代码自动部署在jenkins的工作空间workspace目录下,而项目的站点目录在/data/www下,所以在构建时,需要把更新的代码文件复制到项目站点下(这里有多种实现方式,这里使用代码复制一份,是因为代码的大小不会占很大的空间,现在很多静态资源都放在一些云服务上了) 最开始使用过软连接的方式,但因为nginx不支持软连接的访问。

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第13张



Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第14张


配置完毕,点击保存即可

码云代码推送

码云仓库修改代码,然后提交PR到master分支

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第15张



Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第16张


部署任务手动构建

手动点击构建,即可实现代码自动化部署 
备注: 
也可以配置成监控到git push就直接自动构建(测试环境建议这样做) 
手动点击构建是为了更好的管理(生产环境建议这样做)

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第17张



Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第18张


如果任务构建失败,会有报错信息和红色标记 //很方便管理

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第19张



Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第20张


访问网站

自动化部署任务构建成功后,访问我们的项目,即可看到修改效果

Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署 第21张



赞(0)
未经允许不得转载:工具盒子 » Docker+Jenkins+ 码云仓库实现 PHP 代码自动化部署