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  
码云:代码仓库

Docker安装

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

Docker安装LNMP环境

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

Docker安装Jenkins

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

码云仓库准备

创建项目仓库

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

Jenkins准备

安装ssh插件

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

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

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

新建工程任务

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

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

工程任务配置

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

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

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

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

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

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

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

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

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

配置ssh

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

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不支持软连接的访问。

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

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

配置完毕,点击保存即可

码云代码推送

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

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

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

部署任务手动构建

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

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

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

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

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

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

访问网站

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

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

目录
相关文章
|
2月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
460 0
|
19天前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
3月前
|
人工智能 缓存 搜索推荐
手把手基于ModelScope MCP协议实现AI短视频创作:零代码自动化工作流
本文介绍了基于ModelScope MCP协议的AI视频生成解决方案,涵盖核心机制解析、零代码工作流搭建、性能优化策略及全链路异常处理。通过统一上下文描述符抽象异构AI服务,实现图像生成、语音合成与视频剪辑的自动化编排。结合缓存优化与错误重试机制,大幅提升生成效率(如5分镜视频从91.7s降至22.4s)。最后展示《夏日海滩》生成案例,并探讨个性化风格迁移与商业场景集成等进阶方向,揭示零代码本质为服务、流程与资源的三层抽象。
529 18
|
5月前
|
存储 jenkins 测试技术
Apipost自动化测试:零代码!3步搞定!
传统手动测试耗时低效且易遗漏,全球Top 10科技公司中90%已转向自动化测试。Apipost无需代码,三步实现全流程自动化测试,支持小白快速上手。功能涵盖接口测试、性能压测与数据驱动,并提供动态数据提取、CICD集成等优势,助力高效测试全场景覆盖。通过拖拽编排、一键CLI生成,无缝对接Jenkins、GitHub Actions,提升测试效率与准确性。
429 11
|
7月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
199 20
|
7月前
|
监控 jenkins 测试技术
Ansible与Jenkins:自动化工具的对比
Ansible和Jenkins是自动化领域的两大巨头。Ansible专注于配置管理和任务自动化,采用无代理架构,使用YAML定义配置,具有幂等性和可扩展性。Jenkins则擅长持续集成和持续交付(CI/CD),支持丰富的插件生态系统,适用于自动化构建、测试和部署。两者各有优势,Ansible适合配置管理与大规模部署,Jenkins则在CI/CD方面表现出色。结合使用可创建更强大的自动化工作流,提升团队生产力和软件质量。选择工具时应根据具体需求决定。
|
9月前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
146 9
|
9月前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
180 5
|
10月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
1790 10
|
10月前
|
监控 安全 测试技术
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性
在自动化和持续集成中,确保代码安全与合规至关重要。措施包括集成自动化安全工具、执行自动化合规检查、进行代码质量与安全检测、评估开源代码安全、实施基础设施即代码的安全标准、采用多层防御策略、加强安全教育与文化建设、使用合规性检测工具及许可证合规分析等,共同提升代码安全性与合规水平。
162 5