給團隊搭建一個內網 gitlab 服務
🍕 準備工作 docker
準備好 docker 環境,如果 docker 不能用,可以參考
一個影片解決Docker安裝, Pull, 找映象等難題 Docker停服怎麼辦?Docker映象無法拉取_嗶哩嗶哩_bilibili
🍕 docker 安裝 gitlab
// 拉取映象
docker image pull gitlab/gitlab-ce:latest
// 啟動容器
docker run --detach \
--publish 50443:443 --publish 50080:80 --publish 50022:22 \
--name gitlab \
--restart always \
--volume d:/srv/gitlab/config:/etc/gitlab \
--volume d:/srv/gitlab/logs:/var/log/gitlab \
--volume d:/srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
幾點說明:
HTTPS / HTTP / SSH 埠對映都沒有使用預設埠,因為我這裡使用的這臺伺服器有很多其它服務在跑,為了避免衝突,無奈只能這樣了。
在後面使用 ssh 拉取程式碼時,會需要一些額外的處理。
如果你的 gitlab 伺服器是獨佔的,建議使用預設的埠對映。
--volume 的目錄掛載,根據實際情況調整。
🍕 配置 gitlab
編輯 /etc/gitlab/gitlab.rb
檔案,修改 external_url
為自定義域名
設定完域名之後,需要配置域名的 DNS 解析,如果是本地測試,可以直接修改 host 檔案來處理。
🍕 拉取倉庫
SSH 方式
先配置本地 SSH key,並新增到 gitlab 上,這個就是普通的操作,可以參考:
git 多賬號配置 - J.曬太陽的貓 - 部落格園
需要注意的是,如果 SSH 埠不是預設的 22,則需要在 config 檔案中指定。
~/.ssh/config
# my gitlab
Host gitlab.my.com
Port 50022
HostName gitlab.my.com
User gitlab
IdentityFile ~/.ssh/mygitlab
SSH 連線測試: ssh -p 50022 -T git@gitlab.my.com
配置好之後,就可以使用 SSH 的方式拉取或推送程式碼了
如果不配置 config 檔案,需要使用這樣的方式指定埠:
git clone git@gitlab.my.com:app/demo2.git
--->
git clone ssh://git@gitlab.my.com:50022/app/demo2.git
HTTP
在程式碼倉庫中,看到的 http url 類似這樣:http://gitlab.my.com/app/demo.git
如果修改了埠,則是無法直接使用的,需要修改成這樣才能用:http://gitlab.my.com:50080/app/demo.git
HTTPS
暫時還沒有處理 HTTPS 訪問,先貼兩篇參考文章
GitLab 配置 SSL/https | GitLab/Kubernetes 知識庫
gitlab-配置實現https - 奔跑在study的路上 - 部落格園
🍕 gitlab 登入
完成 gitlab 配置之後,需要重啟 docker
docker restart gitlab
gitlab 的啟動比較慢,需要多等一會。
使用 http://gitlab.my.com:50080
(自定義域名:埠) 開啟 gitlab
管理員賬號是 root
,密碼可以透過如下方式獲取,獲取之後記得儲存好。
docker exec -it 容器名字或容器ID grep 'Password:' /etc/gitlab/initial_root_password
🍕 gitlab 內部配置
根據需要,可以設定允許上傳的最大檔案(僅限管理員許可權的使用者)
🍕 參考文章
CentOS7 下gitlab修改域名host | The One Like You
處理git clone命令的非標準SSH埠連線 | 我的站點
docker安裝gitlab的初始賬號密碼 - lucky_tomato - 部落格園
新增或修改ssh服務的埠 - 小得盈滿 - 部落格園
https://www.cnblogs.com/jasongrass/p/18326815