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

简介: 自动化部署(持续集成/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  
码云:代码仓库
AI 代码解读

Docker安装

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

Docker安装LNMP环境

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

Docker安装Jenkins

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

码云仓库准备

创建项目仓库
AI 代码解读

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

Jenkins准备

安装ssh插件

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

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

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

新建工程任务

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

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

工程任务配置

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

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

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

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

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

构建触发器选择:Github hook trigger for GITScm polling
AI 代码解读

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

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

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

配置ssh

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

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

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

配置构建shell脚本

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

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

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

配置完毕,点击保存即可
AI 代码解读

码云代码推送

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

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

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

部署任务手动构建

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

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

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

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

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

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

访问网站

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

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

目录
打赏
0
0
0
0
23
分享
相关文章
|
2月前
|
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
99 20
docker私有仓库harbor安装
通过以上步骤,您可以成功在企业内部安装和配置Harbor私有仓库,方便地管理和分发Docker镜像。Harbor不仅提供了基础的镜像管理功能,还增强了安全性、身份管理和审计功能,使其成为企业级容器镜像管理的理想选择。
200 22
Gitee+Jenkins+SonarQube代码上线的实战操作
通过以上步骤,就可以实现基于Gitee、Jenkins和SonarQube的代码上线流程,确保代码的质量和上线过程的自动化和可控性。在实际操作中,可以根据项目的具体需求和环境进行适当的调整和优化。
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
5912 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
155 3
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程
Docker和Jenkins有什么不同
【10月更文挑战第18天】Docker和Jenkins有什么不同
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
326 1
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
【10月更文挑战第8天】本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
79 5