docker安裝gitlab到其他端口

第一步創(chuàng)建3個(gè)掛載卷

mkdir -p /home/gitlab/etc/gitlab    
mkdir -p /home/gitlab/var/log
mkdir -p /home/gitlab/var/opt

接著創(chuàng)建鏡像,注意,這里端口映射要一模一樣,不然克隆時(shí)候容器內(nèi)部還是用80端口,外面用的是8090,就會(huì)需要你自己手動(dòng)添加端口號(hào)到url上很麻煩。

docker run 
-d                #后臺(tái)運(yùn)行,全稱:detach
-p 8443:443      #將容器內(nèi)部端口向外映射
-p 8090:8090       #將容器內(nèi)8090端口映射至宿主機(jī)8090端口,這是訪問(wèn)gitlab的端口
-p 8022:8022       #這是訪問(wèn)ssh的端口
--restart always #容器自啟動(dòng)
--name gitlab    #設(shè)置容器名稱為gitlab
-v /home/gitlab/etc/gitlab:/etc/gitlab    #將容器/etc/gitlab目錄掛載到宿主機(jī)/usr/local/gitlab/etc目錄下,若宿主機(jī)內(nèi)此目錄不存在將會(huì)自動(dòng)創(chuàng)建
-v /home/gitlab/var/log:/var/log/gitlab    #與上面一樣
-v /home/gitlab/var/opt:/var/opt/gitlab   #與上面一樣
--privileged=true         #讓容器獲取宿主機(jī)root權(quán)限
gitlab/gitlab-ce:15.9.1-ce.0    #鏡像的名稱,這里也可以寫(xiě)鏡像ID


docker run -d -p 8443:443 -p 8090:8090 -p 8022:8022 --restart always --name gitlab -v /home/gitlab/etc/gitlab:/etc/gitlab -v /home/gitlab/var/log:/var/log/gitlab -v /home/gitlab/var/opt:/var/opt/gitlab --privileged=true gitlab/gitlab-ce:15.9.3-ce.0

按上面的方式,gitlab容器運(yùn)行沒(méi)問(wèn)題,但是訪問(wèn)8090卻打不開(kāi),這是因?yàn)槲矣成涞氖?090=》8090
因?yàn)間itlab上創(chuàng)建項(xiàng)目的時(shí)候,生成項(xiàng)目的URL訪問(wèn)地址是按容器的hostname來(lái)生成的,也就是容器的id。
作為gitlab服務(wù)器,我們需要一個(gè)固定的URL訪問(wèn)地址,于是需要配置gitlab.rb(原路徑etc下,宿主機(jī)路徑:/home/gitlab/etc/gitlab/gitlab.rb)。

external_url 'http://12012.436.179.111:8090'
gitlab_rails['encoding'] = "utf-8"
gitlab_rails['gitlab_ssh_host'] ='http://12012.426.1759.1341'
gitlab_rails['gitlab_shell_ssh_port'] = 8022 

這幾行就把原本的80端口改成了8090和8022,上文的同端口映射就是這個(gè)原因。這樣保證了容器內(nèi)外都是用的相同端口
修改賬號(hào)密碼

如果報(bào)錯(cuò)打不開(kāi),可以docker log gitlab進(jìn)去看看報(bào)什么錯(cuò)了,不同版本的gitlab.rb是不一樣的,經(jīng)常不兼容,注意關(guān)掉restart always不然看不到error在哪。

# 進(jìn)入容器內(nèi)部
docker exec -it gitlab /bin/bash
# 進(jìn)入控制臺(tái)
gitlab-rails console -e production
# 查詢id為1的用戶,id為1的用戶是超級(jí)管理員
user = User.where(id:1).first
# 修改密碼
user.password='!Aa123qweA?'
# 保存 如果報(bào)錯(cuò)就是密碼太簡(jiǎn)單搞復(fù)雜一點(diǎn)
user.save!
# 退出
exit;
 docker restart 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ù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容