本系列文章的最終目的,是利用 gitlab-ci + gitlab-runner 實現前端自動化打包編譯、部署發布。會記錄一些自己在達到目的期間遇到一些問題。精力有限,只能一點一點更新,大神們可自行 google。
一、為什么用 docker
2016年macbook pro 有一個較大的變化,一直想買一個,終于在2016-11-23日,入手了一個16款乞丐版 macbook pro。之所以選乞丐版,第一,經費有限,第二,是覺得前端不需要那么高的性能,配置低一點沒關系。
買之前,看到網上很多人推薦選擇加內存,8g 的不夠用,事實證明確實如此。
原先的規劃是,在pc中開兩個虛擬機,一個跑 gitlab,另一個跑 gitlab-runner,于是下了一個 virtual-box,和一個 ubantu。虛擬機搞好后,一運行,在里面隨便點了幾下,就感覺不行,比較卡,特別是調整分辨率的時候,直接卡住幾十秒,cpu 也跟著蹭蹭蹭的上去了。這還只是跑一臺,再加一臺會是怎樣?于是果斷拋棄了單獨布虛擬機的想法,改用 docker。
二、什么是 docker
Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平臺。
這個是從 docker 中文社區上摘下來的,docker 已經非常火了,可以自己百度一下。
三、我在 docker 上遇到的坑
docker 我也是剛剛接觸,之前只是聽過,一只沒有去弄,所以我是一個超級菜鳥。這是我為什么寫這篇文章的原因,我是站在一個超級菜鳥的角度,來教大家如何安裝 docker,讓那些一點不懂 docker,又像我一樣跑不起虛擬機的人,能夠跟著我的節奏,順利的把 docker 跑起來。
先說一下自己的環境,MacOS系統。不過其實 windows 也差不多,在公司里的windows 10 也裝成功了。
一開始自己不懂,也是在網上找的教程。最開始就是跟著這篇文章一步一步搞的。
Mac通過Docker部署Gitlab實踐,步驟很簡單:
他的文章里介紹的是使用 docker toolbox,跟著這個教程一直走,都沒有問題,但是在配置加速器的時候,就很蛋疼,toolbox 配置加速器感覺有點復雜,而且可能是我人品的問題,命令都敲了好幾遍,也卸載重裝過幾次,但加速器一只沒有配置成功。加速器就相當于 nodejs 的 cnpm,畢竟 docker 的服務器是掛在國外的。加速器配置失敗了,docker 用起來就非常蛋疼,下載超級慢。
后來看官網,說 docker toolbox 可以和 docker foc mac(windows)并存,于是又下載安裝了 docker for mac 。
折騰了好一會,都失敗了,再跟著他的教程走。DaoCloud 的界面已經和他的教程稍微有點不一樣了,應該是版本升級了。實際上應該是在 我的集群 里添加“自有主機”。反正添加自有主機的時候,也是蛋疼的不要不要的,最后搞了好久終于搞通了。
添加完自有主機后,就可以通過網站直接給自己電腦部署 docker images。剛開始我就是這么干的,也很快很方便。
本來以為到這就可以結束了,但是問題來了。當我把所有的 docker 工具全關了,再先啟動 docker toolbox 的命令行工具,再啟動我的 kitematic,悲劇發生了,安裝好的 gitlab 鏡像都不見了。然后我再打開 docker for mac 工具,狀態一只顯示 Docker starting
。再使用docker for mac 的 diagnose 功能,docker-cli 顯示failed。后來把所有的 docker 都刪除了,出去玩了會兒,回來已經晚上1點多,重新開始搞。
四、最簡單的docker 安裝(適用于windows)
在中午搞的時候,其實是有和朋友交流的,因為的加速器一直安裝不成功,也是看他使用docker for mac 我才去下的這個。
有過之前的教訓,這個我要來點不一樣的。
1、先只裝了docker for mac,然后配置加速器,docker for mac 的加速器配置超級簡單,也十分有效。這里需要注意一點的是,這種方法需要配合命令行模式,直接調用系統的終端就可以了。
2、開始下載 gitlab 鏡像。docker pull gitlab/gitlab-ce
,下載非常快,和沒加速簡直天壤之別。但是問題來了,下載完成后怎么部署鏡像?這個在下午折騰了我好久,都沒弄好,最后是通過 GUI 工具發布的(下午成功過一次)。
3、有了了前面的經驗,這次我們直接使用GUI工具(Kitematic)。先下載Kitematic。
4、當 Kitematic 安裝成功后,如果。注意 kitematic 中直接下載鏡像可能沒有加速,鏡像下載加速只有命令行模式下可以,也就是第2點,至少我是這樣,如果你有發現不一樣的,歡迎留言。并且這里是需要注冊賬號的,賬號注冊完成后,需要驗證郵箱,否則無法登錄成功。
5、運行鏡像
6、結果展示
五、將會使用到的 docker 的簡單命令
- 查看版本
docker version
- 查看幫助
docker help
- 搜索docker鏡像
docker search xxx
- 下載鏡像
docker pull userName/imageName