下載地址:
https://docs.docker.com/docker-for-mac/install/
下載下來是一個dmg的安裝包,直接安裝就能夠了。html
網絡問題
嗯,在國內作開發必須談網絡問題,安裝好docker以後,建議使用國內的docker鏡像源,我用的是aliyun的。git
- 首先你得有aliyun的帳號:
- 而後進去到https://dev.aliyun.com/search.html頁面
- 若是你登陸了,進入到上面的頁面,點擊上面頁面的【管理中心】
- 而後點擊【鏡像加速器】就能夠按照提示配置了
安裝portainer
portainer是一個Docker的可視化的管理工具。
使用下面的命名安裝portainer:docker
1 |
docker run -d -v "/var/run/docker.sock:/var/run/docker.sock" -p 9000:9000 portainer/portainer |
上面的命令執行完成以後,打開瀏覽器訪問:shell
localhost:9000macos
一開始會讓你設置管理員密碼,設置完成以後,進入系統,界面應該是下面這個樣式的:瀏覽器
在portainer能夠很方便的管理你的Docker。推薦安裝。ruby
安裝gitlab-ce
使用下面的命令安裝gitlab-ce網絡
1 |
sudo docker run --detach \ |
上面的參數說明:ssh
hostname按照本身的須要改工具
volume的冒號前面爲物理機器上的實際目錄,需提早建好,而後改成正確路徑。冒號後面爲掛載點,不要改
publish的三個端口映射本身看狀況來,通常本身網內使用,光一個80就行了,443和22都須要額外配置數字證書什麼的
安裝完成以後,能夠在portainer中的【containers】中查看全部的容器狀態。
若是gitlab的狀態是created的話,那麼你能夠選中,點擊【start】啓動,啓動成功以後應該是上圖的狀態。
而後打開瀏覽器訪問:
localhost:80
或者
mygitlab.com:80
這個時候會要求你修改root帳戶的密碼,輸入2次密碼肯定就能夠了。注意這個root帳戶是gitlab的帳戶不是你mac系統的root帳戶,不要搞錯了。
到這裏,在macos中搭建gitlab系統就算完成了。
下一篇講如何在gitlab中配置ci/cd。
gitlab配置ci/cd
安裝gitlab-runner
官方文檔地址: https://docs.gitlab.com/runner/install/
注意,這裏咱們選擇install as a Docker service。
- 首先使用下面的命令來安裝gitlab-runner
1 |
docker run -d --name gitlab-runner --restart always \ |
若是你是用的是docker來運行gitlab和gitlab-runner的話,注意上面的–link參數,這裏必須加上–link gitlab,其中gitlab是以前咱們運行gitlab的時候指定的容器名稱。這樣以後,等因而讓gitlab-runner鏈接上了gitlab這個容器,這樣在gitlab-runner容器中就能夠訪問到gitlab這個容器了。更多內容,請自行查看docker文檔。
配置gitlab-runner
若是要使gitlab-runner工做的話,須要讓gitlab
-runner知道你的gitlab安裝在哪一個地址,以及註冊用的token。
使用下面的步驟來在gitlab中註冊runner。
-
運行下面的命令
1
docker exec -it gitlab-runner gitlab-runner register
-
輸入gitlab的url地址
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):1
http://gitlab
注意這裏的url地址,是http://容器的名稱。
- 輸入token
Please enter the gitlab-ci token for this runner:
後面的步驟根據提示輸入便可。
token查看地址: http://localhost:81/admin/runners
-
接下來的2步輸入描述,輸入標籤,本身輸入便可。
-
是否運行在沒有tag的build上面。在配置gitlab-ci的時候,會有不少job,每一個job能夠經過tags屬性來選擇runner。這裏爲true表示若是job沒有配置tags,也執行。
Whether to run untagged builds [true/false]:1
true
-
是否鎖定runner到當前項目。
Whether to lock the Runner to current project [true/false]:
1 |
true |
- 選擇executor,這裏列出了不少executor,具體區別能夠看這裏:https://docs.gitlab.com/runner/executors/README.html
Please enter the executor: parallels, ssh, virtualbox, docker-ssh+machine, kubernetes, docker, docker-ssh, shell, docker+machine:
1 |
docker |
- 執行的默認docker image,上面一步選擇了docker,全部這裏是docker的配置。
Please enter the default Docker image (e.g. ruby:2.1):1
alpine:latest
這裏設置的是alpine,這是一個基於Alpine Linux的最小的Docker鏡像。
在項目中啓用runner
使用管理員帳戶登陸gitlab,訪問 http://mygitlab.com:81/admin/runners 這個地址,
在頁面的底部能夠看到已經註冊成功的runner。
在這裏能夠點擊runner進入配置,能夠給runner指派項目。指派的項目就能夠使用該runner了。
在項目中添加.gitlab-ci.yml
在gitlab中建立一個測試項目,而後添加.gitlab-ci文件
添加如下內容:
1 |
test: |
上面test表示一個job的名稱,script是這個job要執行的命令。
還能夠設置tags,only等參數,具體能夠參考: https://docs.gitlab.com/ee/ci/yaml/#shallow-cloning
提交以後,就會在Pipelines中看到正在執行job。
問題記錄
fatal: unable to access
http://gitlab-ci-token:xxxxxxxxxxxxxxx@mygitlab.com/zhongzhong/cicd-test.git/
failed to connect to mygitlab port 80 : connetion refused
解決:出現這個問題的緣由好像是gitlab-runner在拉取代碼的時候,沒有解析到
mygitlab.com,查看gitlab-runner的host文件,裏面有mygitlab的映射。暫時經過將gitlab中的extenar_url修改成gitlab容器在docker中的ip地址。
1 |
docker exec -it gitlab vi /etc/gitlab/gitlab.rb |
1 |
external_url 'http://172.17.0.3' |
這樣以後,就不會在出現上面的錯誤了。