環境配置
作業系統: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+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 Jenkins準備
安裝ssh插件
因為建構項目式,需要執行伺服器的一些shell指令,是以采用ssh登入方式與遠端伺服器進行通信。
1. 系統管理->插件管理
2. 搜尋:ssh,安裝即可
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 建立工程任務
任務名稱不能是中文哦,選擇第一個:Freestyle project 自定義項目
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 工程任務配置
1. 源碼管理選擇:git
2. Repository URL:倉庫位址(我的是碼雲倉庫)
3. Credentials選擇添加
4. 添加憑據
5. 配置倉庫私鑰(具體可檢視碼雲的倉庫密鑰管理幫助)
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 憑據配置成功後,選擇上一步憑據配置的Username即可,這下如果成功連接配接上倉庫位址,則不會報錯了。
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 建構觸發器選擇:Github hook trigger for GITScm polling
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 建構環境:Use secret text(s) or file(s) //私密方式傳輸檔案
憑據:選擇指定憑據git
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 配置ssh
1. 系統管理->系統配置
2. 配置遠端伺服器ssh相關資訊
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署
Docker+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+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 配置完畢,點選儲存即可
碼雲代碼推送
碼雲倉庫修改代碼,然後送出PR到master分支
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 部署任務手動建構
手動點選建構,即可實作代碼自動化部署
備注:
也可以配置成監控到git push就直接自動建構(測試環境建議這樣做)
手動點選建構是為了更好的管理(生産環境建議這樣做)
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 如果任務建構失敗,會有報錯資訊和紅色标記 //很友善管理
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署 通路網站
自動化部署任務建構成功後,通路我們的項目,即可看到修改效果
Docker+Jenkins+ 碼雲倉庫實作 PHP 代碼自動化部署