感謝鐵人賽的挑戰活動,讓我終於把docker的一些用法比較深刻的理解了。
最初是找到直接對外服務ip的docker用法,但後來找到了一些複雜的ipvaln或macvlan的用法,發現將docker的網路架構弄到太過複雜,反而不利後續維護,就改成思考reverse proxy或coredns等的方式解套。
然後在drone+gogs的挑戰上,又遇到奇怪的問題,也沒解,gogs可能真的社群沒有太過活躍,所以一些問題都沒有看到有人接手處理,這也給予一個想法:還是需要找比較活躍或有商業服務的OSS方案。
中途當然有先研究了一些toolkit去處理如何便於排除問題的方法,跟監控方案。
也幾度懷疑是不是習慣使用的archlinux有什麼套件沒裝,而改用fedora,反而遇到更多不熟悉的問題...
最後因為在工作上需要maven作打包工作,今年才換成container版本,但版控到打包都還是手動key路徑跟docker run指令,所以思考如何好好作自動化,剛好藉由這段時間理解的網路架構,重新搭建了我的toolkit。
所以就一直從以下累積的過程,完成了最後的CI架構:
這段鐵人賽並不會結束我的CICD容器化的學習之路,後續還會研究的方向:
容器化真的將很多以前傳統的作業變得相當迅速簡單,更新、備份、重建、可攜性等,都大幅簡化很多工作跟等待時間、資源配置的量。
不過也必須抱怨一下,不管是哪一篇網路文章,或是官方文章,或是一本不錯的書,我發現都無法完全成功的執行它們給予的指令與結果畫面,希望能有本書或文章可以給予更多WYSIWYU,就是即視即可用的範例,不要跳過一些關鍵步驟。