背景
在很多時候我們需要一個類似於GitHub一樣的平台來管理自己的代碼,並且團隊中使用Git進行代碼開發,這個時候我們也是需要能夠有一套能夠管理項目進度,登記Issue並跟蹤項目進度的平台和工具,這個時候GitLab就是一個非常重要的選擇,當你使用過后你會發現無論是源代碼管理還是項目進度管理或者是重點項目登記都是非常全面的,更重要的是這些東西完全可以將數據保存在自己的私有服務器上能夠最大程度上保證代碼和信息的安全,GitLab有很多的功能,點擊這里查看官方文檔來看看到底如何來使用這個開源的代碼和項目管理平台,今天的重點是如何在Windows上面搭建一整套的服務器,網上的教程很多,很多都是在Linux服務器CentOS上面搭建服務的,很多的.Net 程序員其實對這部分的內容並不太熟悉,他們更熟悉Windows平台,另外一種方案就是在Windows上面裝虛擬機然后在Linux虛擬機上面搭建GitLab服務,這篇文章主要是介紹如何通過Docker 安裝GitLab鏡像的方式來快速安裝GitLab服務。
准備工作
1 安裝或更新WSL2
在之前的文章中,我們介紹過分別在Windows7和Windows10中安裝Docker的方法,之前在Windows10中我們是通過開啟Hyper-V組件來進行Docker的安裝,隨着微軟不斷完善WSL以及WSL2的推出,現在完全可以不開啟Hyper-V來直接進行Docker的安裝。一般的Windows10系統中默認以及安裝WSL,我們只需要通過下載一個 wsl_update_x64.msi來將系統中的WSL更新到WSL2的最新的版本即可,這里介紹一下WSL的安裝和更新到WSL2的微軟官方文檔來了解詳情。
2 安裝 Docker Desktop
點擊此處來下載最新的Docker Desktop Installer來安裝Docker ,安裝完成后需要重新啟動電腦。
3 檢查是否正確安裝Docker
重啟計算機后,看桌面右下角的Docker圖標是否已經啟動,如果已經正常啟動在cmd中通過docker ps 命令來看是否已運行Docker。
安裝步驟
1 創建數據卷Volume
這個是非常重要的一個步驟,之前由於沒有正確執行步驟,所以如果沒有正確創建數據卷,你會發現每當你的電腦重啟后,你之前做的所有的操作保存的數據全部都清除了這是因為你的數據都是保存在Docker鏡像里面的,並沒有將Docker里面的數據同步到系統中任何一個磁盤中,所以當你執行Docker stop或者是Docker restart命名后之前所有的數據都丟失了,這個是一個非常重要的過程,一定要切記切記!!!,這里如果你對數據卷還沒有一個清晰的認知,請參考這篇博客。
執行的命名是 :docker volume create XXX ,后面是數據卷的名稱

這里由於GitLab中主要有三個重要的數據分別是 data、config、log,所以我們這里創建了三個數據卷,后面GitLab服務都是掛在在這幾個目錄下面的。
2 執行Docker run步驟
下面的這個命令非常重要,這個是安裝具體的gitlab鏡像到上面創建的volume下面
docker run -d -p 443:443 -p 80:80 --name gitlab --restart always -v gitlab-config-vol:/etc/gitlab -v gitlab-log-vol:/var/log/gitlab -v gitlab-data-vol:/var/opt/gitlab-e GITLAB_ROOT_EMAIL="root@local"gitlab/gitlab-ce
-e GITLAB_ROOT_PASSWORD="gitlab_root_password"
-e EXTERNAL_URL="http://192.168.211.119"
這個命令中我們拉取的是gitlab-ce社區版的鏡像,如果之前沒有下載過,這個過程可能比較長,需要等待這個過程下載完然后才能正確安裝,這里面每個參數的具體含義如下:
-d 后台運行容器,並返回容器ID -p 80:80 將容器內80端口映射至宿主機80端口,這是訪問gitlab的端口 -p 443:443 將容器內443端口映射至宿主機443端口,這是訪問ssh的端口 --name gitlab 設置容器名稱為gitlab --restart always 容器自啟動 -v gitlab-config-vol:/etc/gitlab 將容器/etc/gitlab目錄掛載到創建的數據卷 gitlab-config-vol目錄下 --privileged=true 讓容器獲取宿主機root權限 gitlab/gitlab-ce 鏡像的名稱,這里也可以寫鏡像ID

安裝完成后我們通過docker ps -a 命令查看我們安裝的docker 鏡像 ,這樣就是正確啟動起來了,這樣我們就完成了一大步。
3 配置GitLab服務
這個步驟主要是配置GitLab在局域網中訪問的Url以及端口,這個主要是方便局域網中進行瀏覽器的訪問,這個過程主要是通過修改容器內GitLab服務來實現的,具體來說是修改GitLab默認的配置文件gitlab.rb來進行的,具體的步驟如下:
3.1 進入容器內執行命令
docker exec -it gitlab /bin/bash
這里的gitlab是我們之前容器中啟動的鏡像GitLab的唯一名稱
3.2 使用vi編輯器打開gitlib.rb,具體命令如下:
vi /etc/gitlab/gitlab.rb
3.3 修改gitlab.rb中的重點配置項
# gitlab訪問地址,可以寫域名。如果端口不寫的話默認為80端口 eaxternal_url 'http://127.0.0.1:80' # ssh主機ip gitlab_rails['gitlab_ssh_host'] = '127.0.0.1' # ssh連接端口 gitlab_rails['gitlab_shell_ssh_port'] = 443
配置了這個后我們就可以在瀏覽器中通過127.0.0.1或者是localhost去訪問GitLab服務了
3.4 保存並推出
# 保存並退出 :wq
這個是linux中默認的保存退出vi編輯器中的命令
3.5 讓修改后的配置生效
gitlab-ctl reconfigure
3.6 重啟GitLab服務
gitlab-ctl restart
3.7 退出容器
exit
4 瀏覽器訪問GitLab服務
由於我們配置的外部訪問端口是80,並且外部訪問地址是本機地址,所以我們在瀏覽器中輸入 http://127.0.0.1/或者是http://localhost都是可以的,第一次訪問的過程中需要配置管理員 root默認的密碼,我們按照默認的配置8位及以上的密碼作為管理員密碼,配置完成后我們其它用戶注冊的用戶信息都是需要我們root賬號進行授權管理的。

5 創建分組、項目及登記Issue
這個部分涉及到后面整個用戶注冊完畢以后,自己創建一個完整的分組,創建項目,上傳代碼,然后再登記issue等一系列的過程,這些過程就是具體的GitLab的使用過程了,這個部分內容非常多需要參考具體的GitLab官方文檔來進行,這個需要自己在不斷的使用過程中一步步探索技巧,並熟練掌握。
動圖欣賞
這里由於上傳圖片大小的限制主要錄了一部分GitLab的功能,當然完整版的功能非常龐大需要不斷在實踐中熟悉,具體請參閱官方文檔。

相關鏈接
數據備份:(14條消息) GitLab從舊服務器遷移到新服務器_楚游香的博客-CSDN博客_gitlab遷移到新服務器
備份注意事項:注意在備份的時候這兩個文件並沒有復制到新的容器內部需要手動進行否則在原來項目進行CI或者刪除的時候會報500錯誤
/etc/gitlab/gitlab-secrets.json
/etc/gitlab/gitlab.rb
文件操作:https://blog.csdn.net/weixin_43288858/article/details/104597500
