0 前言
本文講述利用 DaoCloud 零開始搭建一個自動化部署項目的基本流程
在使用 DaoCloud 之前,推薦先大致了解一下 docker 是什么
這里也整理了一些 docker 的基本操作 http://www.itdecent.cn/p/affefdeb24b3
當(dāng)然,跳過 docker 直接開始也是完全可行的!
1 首先在 github 創(chuàng)建一個項目

2 接著在本地電腦上 clone 剛才創(chuàng)建的 git 庫
并創(chuàng)建一個初始的 nuxt 項目


3 修改 package.json 文件,使項目部署到 0.0.0.0 上
然后 push 到 github


4 接下來我們開始利用 DaoCloud 來實現(xiàn)剛才創(chuàng)建項目的自動化部署
登錄 DaoCloud https://account.daocloud.io/signin
可以選擇以 githhub 賬戶登錄

5 在 “項目” 菜單中創(chuàng)建新項目

6 設(shè)置代碼源為之前創(chuàng)建的 github 庫
開始創(chuàng)建


7 創(chuàng)建后可以去設(shè)置項目流程
這里就先用默認(rèn)的 “測試” 和 “構(gòu)建” 流程,不作任何改動
然后點擊手動觸發(fā),開始第一次執(zhí)行這個項目



8 在項目列表頁面,可以看到項目的當(dāng)前狀態(tài)

9 等待項目執(zhí)行完成,會發(fā)現(xiàn)頁面上提示執(zhí)行失敗了
點擊失敗的小紅點查看錯誤詳情
發(fā)現(xiàn)錯誤原因是 “沒有找到 Dockerfile 文件”


10 需要在 git 項目的根目錄下創(chuàng)建一個 Dockerfile 文件
Dockerfile 用來定義這個項目運行環(huán)境的構(gòu)建過程
添加好后再次提交 push


11 push 后發(fā)現(xiàn) DaoCloud 上的項目立刻開始自動執(zhí)行了
這次執(zhí)行的結(jié)果為成功

12 進(jìn)入 “鏡像倉庫” ,如果發(fā)現(xiàn)有一個新生成的鏡像
說明到目前為止已經(jīng)成功地將一個 git 項目,構(gòu)建為一個鏡像了。
記下這里的鏡像名稱和路徑。

13 接下來要做的是將鏡像部署到自己的服務(wù)器,使之正常工作
進(jìn)入 “集群管理” 菜單點擊 “添加主機(jī)”

14 根據(jù)頁面的提示信息,將第 3 步中給出的命令復(fù)制到自己的服務(wù)器上執(zhí)行
關(guān)于安裝 docker 總結(jié)了一些經(jīng)驗 http://www.itdecent.cn/p/9733c8482173

15 完成后如果查看新添加的主機(jī)狀態(tài),是否一切正常

16 進(jìn)入 “stack” 菜單,創(chuàng)建一個 stack
YML 內(nèi)容填寫
dao:
image: caocloud.io/xxx/dao:master-zzz
ports:
- 3000:3000
其中 image 的值為之前記下的鏡像路徑
然后在下面選擇我們剛添加的集群主機(jī)
完成創(chuàng)建



17 創(chuàng)建后自動進(jìn)入 stack 詳情頁面
可以看到項目當(dāng)前狀態(tài)和實時刷新的部署和執(zhí)行日志

18 在瀏覽器中打開服務(wù)器地址 3000 端口
可以看到默認(rèn)的 nuxt 項目首頁

19 接下來需要實現(xiàn)自動部署更新項目的功能
回到項目管理中的流程定義頁面
在 “發(fā)布階段” 中點擊 “添加并行任務(wù)”

20 選擇任務(wù) “發(fā)布到只有主機(jī)”
然后選擇應(yīng)用,完成創(chuàng)建發(fā)布階段



21 至此已經(jīng)完成了整個自動化項目的構(gòu)建
接下可以測試一下,每次 push 后是否會自動更新生效
在 nuxt 項目 的 pages 目錄中添加一個 test.vue 文件,并提交 push


22 可以看到項目開始自動執(zhí)行
這次執(zhí)行過程有 3 個階段

23 成功執(zhí)行后 在瀏覽器訪問網(wǎng)站的 /test 路由
可以看到出現(xiàn)了新添加的 test 頁面

[成功]