Gitlab 與 gitlab-ce 的前言
Gitlab 有企業版和社區版 (gitlab-ce),個人使用者就選擇社區版夠用了。
gitlab-ce 是套很完整的 git server,在完整的前題下整合著許多的服務,當然運行速度上也會比較肥大,執行時間上也會較久,由 docker 開啟 gitlab-ce 容器運行後,也大約需要十至二十分的時間才能讓網頁介面呈現,進行使用者登入。
安裝 gitlab-ce
下載 gitlab-ce 映像
開啟 docker 介面,前往 倉庫伺服器 gitlab-ce 尋找映像檔,找到後點按下載按鈕將映像檔載下,因為很肥大所以所載下的檔案也需要一大段的時間。
前往映像檔面版查看,完成下載的 gitlab-ce 映像檔足足有 3G 的大小,接著在右上方的佈署按鈕點按,準備設定 gitlab-ce 容器。
增加 docker 資料夾下所需的組態對應路徑資料夾
本地路徑 | 容器路徑 | 說明 |
---|---|---|
/docker/gitlab-ce/data | /var/opt/gitlab | 資料目錄 |
/docker/gitlab-ce/logs | /var/log/gitlab | 日誌目錄 |
/docker/gitlab-ce/config | /etc/gitlab | 組態檔案等 |
對應設定的資料夾路徑如下圖。
連接埠設定
組態連接埠對應,在本機連接埠所設定的組態,會是 web 使用的端口連接埠 <nas ip or domain>:3080,其他二個分別是 ssh 的 3022 與 ssl 的 3443。
環境設定
這裡只有參考文章設定 GITLAB_HOST 變數,這裡如果是在區網使用的話,會需要直接指定 nas 主機的 ip 加上埠號,如果是對外的 domain name 要完整的對應 ssl 的 http or https 與網址。
Web 操作
取得 initial_root_password 文件檔裡會有自動產生的密碼,以 root 帳號初步登入 gitlab-ce
到這裡已 gitlab-ce 完成容器的初步設定,在執行容器運行需要一段時間,大約至少十分鐘以上,依主機效能有所差異,當運行完成後就可以使用 http://<nas ip or domain>:3080 於瀏覽器開啟網頁,過程中會出現 400 與 502 狀態回應,但如果見到 502 頁面時也表示成功運行起 gitlab-ce。
gitlab-ce 透過 docker 運行後,會產生出 config/initial_root_password 文件檔裡會有自動產生的密碼,會是以最高權限的 root 帳號來使用。
參考文章於 gitlab-ce 在容器設定時,加入 GITLAB_ROOT_PASSWORD 變數與設定密碼 (值),但實際運行後確無法啟動 gitlab-ce,之後刻意將 GITLAB_ROOT_PASSWORD 變數加入容器設定中,也成功的將 gitlab-ce 運行起來, GITLAB_ROOT_PASSWORD 變數不設定直接進 config/initial_root_password 文件檔取得運行自動產生的密碼。
取得的密碼也在下面程式碼片段 Password: 的後方,也就是一長串的 hash 字串的 <gitlab-ce 自動產生的密碼>
1 2 3 4 5 6 7 8 9 | # WARNING: This value is valid only in the following conditions # 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run). # 2. Password hasn't been changed manually, either via UI or via command line. # # If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password. Password: <gitlab-ce 自動產生的密碼> # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours. |
gitlab.rb 設定 gitlab-ce 的常規組態
常規組態都在 /docker/gitlab-ce/config/gitlab.rb 檔案中。
有不少文章說修改組態檔案: /docker/gitlab-ce/data/gitlab-rails/etc/gitlab.yml。
其實這個檔案是不建議修改,因為執行 gitlab-ctl reconfigure 後會被覆蓋,要修改只能修改 /docker/gitlab-ce/config/gitlab.rb 檔案。
設定網址網址 (domain or nas ip)
登入 gitlab-ce 之後先進入預設建立的 Monitoring 的 repo,因為是初建還沒有相關的程式碼加入 git 版控,呈現的介面會是幾個針對專案的 git 設定,其中見到 clone 按鈕點按下的網址,在 HTTP 與 SSH 的網址是以 gitlab-ce 做為主機網址,接著下來就會需要處理這部份。
開啟 gitlab.rb 檔裡面會都是 # 的方式註解設定,直接加入 external_url 設定,在沒有 https 的 ssl 方式下直接對應容器的網址埠號 3080 設定,這裡需要將整個網址完整輸入。
1 | external_url "http://<nas ip or domain>:3080" |
如果習慣程式碼習慣置於對應的說明區下,配合關鍵字 external_url 查尋到對應位置。
進行了上面的設定後,在原本的 gitlab-ce 容器對應的容器連接埠 80,也需要改成 3080 (本機與容器的埠號都相同),才能在瀏覽器正常開啟 gitlab-ce 的網頁。
external_url 所設定的是容器整個的路由,會對應上的是 SSL、domain (or ip)、埠號,以相對的方式處理,所以在 gitlab-ce 設定也需要往 Docker 的容器設定,以相對將原有的 80 改成 3080 埠號。
組態 SMTP 信箱
其他的設定如下,如果沒要用外部 domain 與信箱,基本上可略過。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "stmp.xxx.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "xxxxx@xxx.xxx.com" gitlab_rails['smtp_password'] = "xxxxxx" gitlab_rails['smtp_domain'] = "stmp.xx.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_pool'] = true gitlab_rails['gitlab_email_from'] = 'xxxxx@xxx.xxx.com' # 其他附加組態 ## 時區 gitlab_rails['time_zone'] = 'Asia/Taipei' |
信樝的 SMTP 設定加入 gitlab.rb 檔之後,前往終端機新增按鈕新開 bash,使用指令 gitlab-ctl reconfigure 相關設定進行重新配置。
關閉註冊
初登入介面後,上方會提示 Check your sign-up restrictions (檢查您的註冊限制),點按下 deactivate 按鈕。
前往 Sign-up restrictions 設定頁,預設是開放註冊,可以關閉註冊以手動來新增使用者,將 Sign-up enabled 不勾選後 Save Changes 儲存設定。
root 帳號修改密碼
右上角的帳號圖示,點按收合選單後點按 Preferences
進入 Preferences 頁面後,在左方的功能選單中有個鎖頭圖示,點按後會前往 Password 頁面,更動需先將 config/initial_root_password 檔中取得的密碼貼入 Current password,再進行設定新的密碼,之後在登入 gitlab-ce 之後會是使用新的密碼。
新建帳戶
點按 Menu > Admin
左方功能選單點按到 Users。
進入到 Users 列表頁後,再點按右方的 New user 按鈕進行新增使用者用。
新增使用者帳號,是由 root 管理權限的帳號所新增,如果有設定 smtp 信箱設定,在創建新的使用者帳號時,在 email 信箱中會收到註冊信,進行驗証之後新的帳號才能進入 gitlab-ce。
新帳號註冊不以信箱驗証,只能走註冊頁面進行新增使用者帳號與直接設定密碼。