這邊討論一下 GitLab 的安裝 與 如何從 使用者端 (Client) 建立專案並上傳程式.
Server 端安裝 GitLab
測試環境 Ubuntu 22.04 Desktop ( 虛擬機 IP:192.168.31.136 )
想要在公司內部架設 GitHub 的相似軟體有很多選擇,目前看起來是 GitLab 是最多人在使用的.
不同作業系統的安裝方式可以參考官方網站 – https://about.gitlab.com/install/#ubuntu
安裝所需套件.
root@ben-virtual-machine:~# apt-get update root@ben-virtual-machine:~# apt-get install -y curl openssh-server ca-certificates tzdata perl
安裝 Mail 系統.
root@ben-virtual-machine:~# apt-get install -y postfix
安裝 Postfix 過程中需選擇 configuration 選擇 ‘Internet Site’ 即可,並輸入 Mail 與 FQDN (我這邊是測試用就沒特別填寫).
加入 GitLab 套件的 repository 並且安裝相關套件.
root@ben-virtual-machine:~# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
Note :
如果是要使用 CE 版本,需下載.
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
其中的 EXTERNAL_URL 需使用你的 FQDN ( 可使用 http 或是 https ) 或是像我只是要玩一下就直接用 IP 即可. 版本我這邊是安裝 gitlab-ee ( Enterprise Edition ) 或是可以選擇 CE ( Community Edition ) 版本.
root@ben-virtual-machine:~# EXTERNAL_URL="http://192.168.31.136" apt-get install gitlab-ee
這樣就設定完成了, 打開網頁 http://192.168.31.136
設定好 GitLab 就可以使用 root (Administrator 管理者) 的身分登入.
預設管理者帳號: root
密碼: 存放在這邊 /etc/gitlab/initial_root_password , 須注意該檔案會在重新配置執行 (gitlab-ctl reconfigure ) 的 24 小時後自動刪除.
root@ben-virtual-machine:~# cat /etc/gitlab/initial_root_password
建議可以先把密碼設定到 /etc/gitlab/gitlab.rb 的 initial_root_password .
root@ben-virtual-machine:~# vi /etc/gitlab/gitlab.rb gitlab_rails['initial_root_password'] = '<my_strong_password>'
並透過 網頁管理介面建立新使用者,我這邊建立了一個 ben 使用者, 之後就可以使用該使用者並建立專案 Project 或是 Repository (預設權限為 Private ,需帳號密碼才能存取) , 或是透過 Rails Console 來建立使用者帳號.
root@ben-virtual-machine:~# gitlab-rails console -------------------------------------------------------------------------------- Ruby: ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x86_64-linux] GitLab: 16.1.2-ee (0642e8c5c91) EE GitLab Shell: 14.23.0 PostgreSQL: 13.11 ------------------------------------------------------------[ booted in 39.40s ] Loading production environment (Rails 6.1.7.2) irb(main):001:0> u = User.new(username: 'ben', email: 'ben@benjr.com', name: 'ben', password: '2ertgds#', password_confirmation: '2ertgds#') => #<User id: @ben> irb(main):002:0> u.skip_confirmation! => 2023-07-19 08:40:15.133285589 UTC irb(main):003:0> u.save! => true irb(main):004:0> [1]+ Stopped gitlab-rails console
我們建立好專案後可以直接在網頁編輯程式碼,不過大多的經驗是會在測試端來寫程式碼,下面來看看在測試端要怎麼將程式上傳 (到 GitLab) 或是下載 (從 GitLab 到 Local).
- 從 Linux Local 端建立新 GitLab Project – https://benjr.tw/106066
- 從 Linux Local 端 Clone Project – https://benjr.tw/106078
- 從 Windows Local 端 Clone Project – https://benjr.tw/106092
- 建立 SSH 連線 – https://benjr.tw/105776
- ssh-agent & ssh-add – https://benjr.tw/105786
Gitlab CI ( Continuous Integration 持續整合 )與 CD ( Continuous Delivery 持續交付 ) Runner
上傳到 GitLab 的程式有辦法自行進行測試嗎? 可以透過 CI/CD 的功能.
- Windows shell ( PowerShell) – https://benjr.tw/106161
- Linux shell – https://benjr.tw/105676
- Linux SSH – https://benjr.tw/105742
.gitlab-ci.yml 說明
- Pipeline -> Stage -> Job – https://benjr.tw/106230
- Job Rules – https://benjr.tw/106258
- Workflow Rules – https://benjr.tw/106251
- Anchors , needs , when – https://benjr.tw/106269
Gitlab 常用功能
- Markdown 語法 – https://benjr.tw/105962
- Topics , Tags 與 Labels – https://benjr.tw/106056
GitLab 資料匯入(回復)與備份
- Backup & Restore – https://benjr.tw/106038
- Gitea 匯入到 Gitlab – https://benjr.tw/106010
Gitlab 遇過的問題
- 遇過的問題 – https://benjr.tw/106199
- Server responded with 0 code – https://benjr.tw/105981