Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Docker+LNMP+Jenkins+码云实现 PHP 代码自动化部署

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

藏色散人
藏色散人ke hadapan
2020-01-17 14:30:504206semak imbas

自动化部署(持续集成 / 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  

码云:代码仓库

码云仓库准备

创建项目仓库

e5839d7060741cfd41ae09c9c32e680.png

Jenkins 准备

安装 ssh 插件

因为构建项目式,需要执行服务器的一些shell命令,所以采用ssh登录方式与远程服务器进行通信。

1. 系统管理->插件管理

2. 搜索:ssh,安装即可

0ed68718d8ef3f3852900a7bfc2c84b.png

1d9fdffe493cbafdcd0068fb05934d9.png

新建工程任务

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

40b5720c028692561766490cc518519.png

工程任务配置

1. 源码管理选择:git

2. Repository URL:仓库地址(我的是码云仓库)

3. Credentials选择添加

4. 添加凭据

5. 配置仓库私钥(具体可查看码云的仓库密钥管理帮助)

403e029a6e869db9d83620a7f3dba15.png

ef352b5b46e70caefd266663e1fd66a.png

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

d944a2edfd7ce421dab8e8b01f73836.png

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

1f714ae2590448f5697ec001cd19092.png

构建环境:Use secret text(s) or file(s) //私密方式传输文件

凭据:选择指定凭据git

af7f18480fd53d8319e1b42e4cb9967.png

配置 ssh

1. 系统管理->系统配置

2. 配置远程服务器ssh相关信息

cd9f6840a68ea28c3326aaafcc6fcee.png

ea7116563384ac06c22a3e8e1a20dc1.png

配置构建 shell 脚本

构建:Execute shell script on remote host using ssh //构建时执行远程服务器shell脚本

1. 填写SSH site //远程服务器ssh登录

2. Command //shell脚本

备注:

因为代码自动部署在jenkins的工作空间workspace目录下,而项目的站点目录在/data/www下,所以在构建时,需要把更新的代码文件复制到项目站点下(这里有多种实现方式,这里使用代码复制一份,是因为代码的大小不会占很大的空间,现在很多静态资源都放在一些云服务上了)

最开始使用过软连接的方式,但因为nginx不支持软连接的访问。

4ca65c7b64ffd5c7c3f2762f06ab60c.png

8f2b5b2b0a8862c592bcd2472ce8229.png

配置完毕,点击保存即可

码云代码推送

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

88cd5fe64201bd7446621b3a680a347.png

b59711ec358d246ab4a5fc0e436c0d2.png

部署任务手动构建

手动点击构建,即可实现代码自动化部署

备注:

也可以配置成监控到git push就直接自动构建(测试环境建议这样做)

手动点击构建是为了更好的管理(生产环境建议这样做)

cdfbf2c080b2023836e522b407eb54d.png

8f529853c4e5e50b75a9c8cf9c0637c.png

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

43a8c31acdcd7a7719db445ac9b32e7.png

f4e203d0555cc802cd1f9adc9be8ec2.png

访问网站

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

af6f1a93f9c81688ad8edae2eed8c16.png

Atas ialah kandungan terperinci Docker+LNMP+Jenkins+码云实现 PHP 代码自动化部署. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam