-
搜索相關(guān)Gitlab鏡像,以免錯(cuò)過(guò)更好的第三方鏡像
docker search gitlab -
下載選定的Gitlab鏡像,這里我們選擇下載量最多的官方鏡像,如果未指定版本則默認(rèn)為最新版本,
latest版本docker pull gitlab/gitlab-ce -
運(yùn)行鏡像
docker run -d -p 80:80 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always --privileged=true gitlab/gitlab-ce容器啟動(dòng)后,會(huì)進(jìn)行大量的初始化,嘗試訪(fǎng)問(wèn)宿主機(jī)
80端口,大約幾分鐘后會(huì)出現(xiàn)一個(gè)確認(rèn)初始化root用戶(hù)密碼的界面,先輸入初始化密碼,之后回到容器這邊,修改$PWD/gitlab/config/gitlab.rb文件,配置克隆地址等# 配置`http協(xié)議`的訪(fǎng)問(wèn)地址 external_url 'http://192.168.1.113' # 配置ssh協(xié)議訪(fǎng)問(wèn)地址 gitlab_rails['gitlab_ssh_host'] = '192.168.1.113' # 配置ssh協(xié)議訪(fǎng)問(wèn)端口,此端口是啟動(dòng)容器時(shí)宿主機(jī)22端口映射給容器的2222端口 gitlab_rails['gitlab_shell_ssh_port'] = 2222 -
端口配置
但在我們大多數(shù)的場(chǎng)景中可能沒(méi)有80端口可以使用了,因此我們需要將gitlab設(shè)置為其他端口如8081docker run -d -p 8081:80 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always gitlab/gitlab-ce容器啟動(dòng)后,嘗試訪(fǎng)問(wèn)宿主機(jī)
8081端口,直到出現(xiàn)一個(gè)確認(rèn)初始化root用戶(hù)密碼的界面(確認(rèn)初始化完畢),之后修改$PWD/gitlab/config/gitlab.rb文件# 配置`http協(xié)議`的訪(fǎng)問(wèn)地址,端口為宿主機(jī)映射端口 external_url 'http://192.168.1.113:8081' # 配置ssh協(xié)議訪(fǎng)問(wèn)地址 gitlab_rails['gitlab_ssh_host'] = '192.168.1.113' # 配置ssh協(xié)議訪(fǎng)問(wèn)端口,此端口是啟動(dòng)容器時(shí)宿主機(jī)22端口映射給容器的2222端口 gitlab_rails['gitlab_shell_ssh_port'] = 2222由于gitlab將默認(rèn)的端口更改為
8081后,我們需要重新生成容器docker stop gitlab docker rm gitlab # 修改容器內(nèi)的端口為8081 docker run -d -p 8081:8081 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always gitlab/gitlab-ce -
HTTPS支持(同時(shí)也相當(dāng)于做了一個(gè)端口轉(zhuǎn)發(fā)配置,更改了默認(rèn)端口)
docker run -d -p 8443:443 -p 8081:80 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always gitlab/gitlab-ce容器啟動(dòng)后,嘗試訪(fǎng)問(wèn)宿主機(jī)
8081端口,直到出現(xiàn)一個(gè)確認(rèn)初始化root用戶(hù)密碼的界面(確認(rèn)初始化完畢),之后修改$PWD/gitlab/config/gitlab.rb文件# 配置`https協(xié)議`的訪(fǎng)問(wèn)地址,端口為宿主機(jī)映射端口 external_url 'https://192.168.1.113:8443' # 配置ssh協(xié)議訪(fǎng)問(wèn)地址 gitlab_rails['gitlab_ssh_host'] = '192.168.1.113' # 配置ssh協(xié)議訪(fǎng)問(wèn)端口,此端口是啟動(dòng)容器時(shí)宿主機(jī)22端口映射給容器的2222端口 gitlab_rails['gitlab_shell_ssh_port'] = 2222 # gitlab支持https是通過(guò)nginx實(shí)現(xiàn)的 nginx['redirect_http_to_https'] = true nginx['redirect_http_to_https_port'] = 80 nginx['listen_port'] = 443如果使用https模式git客戶(hù)端需執(zhí)行
git config --global http.sslVerify false,否則克隆時(shí)會(huì)報(bào)錯(cuò)SSL certificate problem: self signed certificate -
用戶(hù)配置(本地下載安裝
git客戶(hù)端工具)-
HTTP協(xié)議
目錄中右鍵,選擇Git Bash Here,執(zhí)行克隆代碼# gitlab項(xiàng)目中的http協(xié)議克隆地址 git clone https://192.168.1.113:8443/money/test.git
系統(tǒng)會(huì)彈出用戶(hù)名密碼的輸入框,輸入正確的用戶(hù)名密碼后,系統(tǒng)會(huì)保存憑據(jù)(控制面板 -> 憑據(jù)管理器 -> window憑據(jù))以方便后續(xù)的
pull/push等操作 -
-
SSH協(xié)議
目錄中右鍵,選擇Git Bash Here,生成密鑰對(duì),再通過(guò)將密鑰的公鑰與gitlab用戶(hù)綁定,即可通過(guò)生成的密鑰對(duì)中的存在于本地的私鑰與gitlab服務(wù)器建立信任的通信,這樣同一密鑰對(duì)可向多個(gè)遠(yuǎn)程代碼庫(kù)建立信任的通信,同時(shí)也不需要多余的用戶(hù)名密碼等# 生成密鑰對(duì),-C代表注釋內(nèi)容,我這里使用的用戶(hù)名 ssh-keygen -t rsa -C root后面直接回車(chē),但需注意密鑰對(duì)生成的路徑,一般情況為(與系統(tǒng)使用的用戶(hù)相關(guān)):
C:\Users\Administrator,進(jìn)入密鑰目錄,復(fù)制公鑰id_rsa.pub的內(nèi)容;接著進(jìn)入gitlab的web界面的用戶(hù)->設(shè)置->SSH Keys,添加復(fù)制的公鑰內(nèi)容;最后選擇Git Bash Here,執(zhí)行克隆代碼git clone ssh://git@192.168.1.113:2222/money/test.git會(huì)讓你確認(rèn)是否建立連接,輸入
yes,在密鑰對(duì)生成的路徑中會(huì)多生成一個(gè)文件known_hosts,存儲(chǔ)無(wú)需確認(rèn)的連接信息
Docker 安裝Gitlab
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。