Docker+LNMP+Jenkins+碼云實現(xiàn) PHP 代碼自動化部署

自動化部署(持續(xù)集成 / CI + 持續(xù)交付 / CD)是一個軟件開發(fā)的趨勢,是對 DevOps 的一個很好的幫助發(fā)展推進(jìn)。今天實踐的是基于 Docker+Jenkins+LNMP + 碼云,實現(xiàn) PHP 代碼的自動化部署過程。

環(huán)境配置

操作系統(tǒng):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

碼云:代碼倉庫

碼云倉庫準(zhǔn)備

創(chuàng)建項目倉庫

Jenkins 準(zhǔn)備

安裝 ssh 插件

因為構(gòu)建項目式,需要執(zhí)行服務(wù)器的一些shell命令,所以采用ssh登錄方式與遠(yuǎn)程服務(wù)器進(jìn)行通信。

1. 系統(tǒng)管理->插件管理

2. 搜索:ssh,安裝即可

新建工程任務(wù)

任務(wù)名稱不能是中文哦,選擇第一個:Freestyle project 自定義項目

工程任務(wù)配置

1. 源碼管理選擇:git

2. Repository URL:倉庫地址(我的是碼云倉庫)

3. Credentials選擇添加

4. 添加憑據(jù)

5. 配置倉庫私鑰(具體可查看碼云的倉庫密鑰管理幫助)

憑據(jù)配置成功后,選擇上一步憑據(jù)配置的Username即可,這下如果成功連接上倉庫地址,則不會報錯了。

構(gòu)建觸發(fā)器選擇:Github hook trigger for GITScm polling

構(gòu)建環(huán)境:Use secret text(s) or file(s) //私密方式傳輸文件

憑據(jù):選擇指定憑據(jù)git

配置 ssh

1. 系統(tǒng)管理->系統(tǒng)配置

2. 配置遠(yuǎn)程服務(wù)器ssh相關(guān)信息

配置構(gòu)建 shell 腳本

構(gòu)建:Execute shell script on remote host using ssh //構(gòu)建時執(zhí)行遠(yuǎn)程服務(wù)器shell腳本

1. 填寫SSH site //遠(yuǎn)程服務(wù)器ssh登錄

2. Command //shell腳本

備注:

因為代碼自動部署在jenkins的工作空間workspace目錄下,而項目的站點目錄在/data/www下,所以在構(gòu)建時,需要把更新的代碼文件復(fù)制到項目站點下(這里有多種實現(xiàn)方式,這里使用代碼復(fù)制一份,是因為代碼的大小不會占很大的空間,現(xiàn)在很多靜態(tài)資源都放在一些云服務(wù)上了)

最開始使用過軟連接的方式,但因為nginx不支持軟連接的訪問。

配置完畢,點擊保存即可

碼云代碼推送

碼云倉庫修改代碼,然后提交PR到master分支

部署任務(wù)手動構(gòu)建

手動點擊構(gòu)建,即可實現(xiàn)代碼自動化部署

備注:

也可以配置成監(jiān)控到git push就直接自動構(gòu)建(測試環(huán)境建議這樣做)

手動點擊構(gòu)建是為了更好的管理(生產(chǎn)環(huán)境建議這樣做)

如果任務(wù)構(gòu)建失敗,會有報錯信息和紅色標(biāo)記 //很方便管理

訪問網(wǎng)站

自動化部署任務(wù)構(gòu)建成功后,訪問我們的項目,即可看到修改效果

本文轉(zhuǎn)自:https://www.php.cn/php-weizijiaocheng-441698.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容