Docker+Jenkins+ 碼雲倉庫實現 PHP 代碼自動化部署

自動化部署(持續集成/CI+持續交付/CD)是一個軟件開發的趨勢,是對DevOps的一個很好的幫助發展推動。今天實踐的是基於Docker+Jenkins+LNMP+碼雲,實現PHP代碼的自動化部署過程。nginx

環境配置

操做系統: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 安裝 dockergit

Docker安裝LNMP環境

請參考這篇文章:Dockerfile 方式定製 lnmp 環境docker

Docker安裝Jenkins

請參考這篇文章:Docker 搭建 Jenkins 實現自動部署shell

碼雲倉庫準備

建立項目倉庫
複製代碼

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 代碼自動化部署
相關文章
相關標籤/搜索