自動化部署(持續整合 / 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
碼雲:程式碼倉庫
碼雲端倉庫準備
##建立專案倉庫
#Jenkins 準備
安裝ssh 外掛程式
因為建置專案式,需要執行伺服器的一些shell命令,所以採用ssh登入方式與遠端伺服器進行通訊。 1. 系統管理->外掛程式管理2. 搜尋:ssh,安裝即可 新工程任務任務名稱不能是中文哦,選擇第一個:Freestyle project 自訂項目工程任務設定
1. 原始碼管理選擇:git
2. Repository URL:倉庫位址(我的是碼雲端倉庫)
3. Credentials選擇新增
4. 新增憑證
5. 設定倉庫私鑰(具體可查看碼雲的倉庫金鑰管理說明)憑證配置成功後,選擇上一步憑證配置的Username即可,這下如果成功連接上倉庫位址,則不會報錯了。
建置觸發器選擇:Github hook trigger for GITScm polling
建置環境:Use secret text(s) or file(s) //私密方式傳輸檔案憑證:選擇指定憑證git 設定ssh ##1. 系統管理->系統設定2. 設定遠端伺服器ssh相關資訊 ##設定建置shell 腳本
建置:Execute shell script on remote host using ssh //建置時執行遠端伺服器shell腳本
1. 填寫SSH site //遠端伺服器ssh登入
2. Command //shell腳本
備註:因為程式碼自動部署在jenkins的工作空間workspace目錄下,而專案的網站目錄在/data/ www下,所以在建置時,需要把更新的程式碼檔案複製到專案網站下(這裡有多種實作方式,這裡使用程式碼複製一份,是因為程式碼的大小不會佔很大的空間,現在很多靜態資源都放在一些雲端服務上了)
###最開始使用過軟連線的方式,但因為nginx不支援軟連線的存取。 ########################已配置完畢,點選儲存即可########碼雲碼推送############## ###碼雲倉庫修改程式碼,然後提交PR到master分支######################部署任務手動構建
手動點擊構建,即可實現程式碼自動化部署
備註:
也可以配置成監控到git push就直接自動建置(測試環境建議這樣做)
手動點擊建置是為了更好的管理(生產環境建議這樣做)
如果任務建置失敗,會有報錯資訊和紅色標記//很方便管理
造訪網站
自動化部署任務建置成功後,造訪我們的項目,即可看到修改效果
以上是Docker+LNMP+Jenkins+碼雲端實現 PHP 程式碼自動化部署的詳細內容。更多資訊請關注PHP中文網其他相關文章!