最近有需求在Mac環境中,使用Docker建置Gitlab的開發環境與CI /CD , 所以記錄一下相關的步驟與細節,Gitlab是一個用Ruby on Rails 開發的開源項目,可以通過web 界面進行專案管理與測試。
使用Docker 佈署可以很容易進行安裝Gitlab與版本管理。
安裝Docker Desktop
- 下載Docker.dmg (https://docs.docker.com/docker-for-mac/install/)
- 點擊Docker.dmg 將Docker.app 拖移到Applications 中

- 點擊Docker.app進行安裝
啟動後會提示您使用系統密碼授權Docker.app。 需要特權訪問才能安裝網絡組件和Docker應用程序的鏈接。

頂部狀態欄中的Docker菜單表示Docker Desktop正在運行,並且可以從終端進行訪問。
如果您剛剛安裝了該應用程序,則還會收到一條消息,其中包含建議的後續步驟以及指向文檔的鏈接。 單擊Docker menu以消除此彈出通知。
- 開啟Teminal 確認docker 指令可以正常
$ docker -v

下載Gitlab image
$ docker pull gitlab/gitlab-ce
建立Gitlab Container
$ sudo docker run -d \
--hostname xxxx.xxxx.xx \
--name gitlab \
--restart always \
--publish 30001:22 --publish 30000:80 --publish 30002:443 \
--volume ~/gitlab/data:/var/opt/gitlab \
--volume ~/gitlab/logs:/var/log/gitlab \
--volume ~/gitlab/config:/etc/gitlab \
gitlab/gitlab-ce
- hostname 建立gitlab 的位置可使用domain or ip
- name container 名稱
- restart 設定為docker 服務啟動後自動重啟
- publish 將主機的30000, 30001, 30002 對應到 80, 22, 443
- volume 將gitlab 的檔案對應到實體主機的路徑,container 刪除後重建與更新後不影響系統資料
修改gitlab.rb 文件
因為已經有把gitlab.rb 文件對應到 ~/gitlab/config
$ vi ~/gitlab/config/gitlab.rb
修改的內容如下:
- external_url ‘http://hostname:30000‘
- gitlab_rails[‘gitlab_ssh_host’] = ‘hostname’
- gitlab_rails[‘gitlab_shell_ssh_port’] = 30001
- nginx[‘listen_port’] = 80
修改email 的配置
一樣在gitlab.rb 中增加smtp的配置
gitlab_rails[‘gitlab_email_from’] = “xxxx@163.com”
gitlab_rails[‘gitlab_email_reply_to’] = ‘xxxx@163.com‘
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.163.com“
gitlab_rails[‘smtp_port’] = 465
gitlab_rails[‘smtp_user_name’] = “xxxx@163.com”
gitlab_rails[‘smtp_password’] = “xxxxpassword” gitlab_rails[‘smtp_domain’] = “163.com” gitlab_rails[‘smtp_authentication’] = “login” gitlab_rails[‘smtp_enable_starttls_auto’] = true
gitlab_rails[‘smtp_tls’] =true gitlab_rails[‘smtp_openssl_verify_mode’] = “peer”
重啟gitlab service
$ sudo docker exec -it gitlab /bin/bash
$ gitlab-ctl reconfigure