docker部署gitlab實踐
一、安裝docker
docker安裝參考如下:
二、docker部署gitlab
1.下載gitlab鏡像
# 拉取最新版 docker pull gitlab/gitlab-ce 或者 docker pull gitlab/gitlab-ce:latest # 拉取指定版本: docker pull gitlab/gitlab-ce:18.5
如果是離線環(huán)境,先從在線環(huán)境下載gitlab鏡像
# 在線環(huán)境下打包鏡像 docker save -o gitlab.tar gitlab/gitlab-ce:latest # 把鏡像上傳到離線環(huán)境,導(dǎo)入鏡像 docker load -i gitlab.tar
2.啟動gitlab
# --privileged=true 以特權(quán)模式運行容器,相當(dāng)于賦予容器類似root的特權(quán)權(quán)限 docker run -d \ --restart always --name gitlab \ -p 8443:443 -p 8090:80 -p 8022:22 \ -v /var/gitlab/etc:/etc/gitlab \ -v /var/gitlab/log:/var/log/gitlab \ -v /var/gitlab/opt:/var/opt/gitlab \ --privileged=true \ gitlab/gitlab-ce:latest
3.修改配置
注意:
1.external_url配置了端口,并且端口不是80,就必須配置nginx[‘listen_port’] = 80,否則會訪問不到
原因:external_url 帶端口后,GitLab 會讓 Nginx 監(jiān)聽該端口(8090),但 Docker 容器內(nèi)對應(yīng)的端口是 80 導(dǎo)致匹配上不
2.external_url不配置端口,可以訪問,但存在問題:GitLab 生成的鏈接有問題
項目地址等就會缺少端口導(dǎo)致復(fù)制的地址訪問不了
- 例:Clone 地址:http://192.168.1.210/root/java-gitlab.git --缺少端口
- 正確地址:http://192.168.1.210:8090/root/java-gitlab.git

# 進入容器 docker exec -it gitlab /bin/bash # 1.編輯gitlab.rb文件 vi /etc/gitlab/gitlab.rb # gitlab訪問地址,可以寫域名。如果端口不寫的話默認為80端口,如果配置了端口就必須配置nginx['listen_port'] = 80 external_url 'http://192.168.1.201:8090' # 容器內(nèi)監(jiān)聽端口80(映射到宿主機 8090) nginx['listen_port'] = 80 # ssh主機ip gitlab_rails['gitlab_ssh_host'] = '192.168.1.201' # ssh連接端口 gitlab_rails['gitlab_shell_ssh_port'] = 8022 # 時區(qū) gitlab_rails['time_zone'] = 'Asia/Shanghai' # 開啟備份功能 gitlab_rails['manage_backup_path'] = true # 備份路徑 gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" # 備份文件的權(quán)限 gitlab_rails['backup_archive_permissions'] = 0644 # 保存?zhèn)浞?60 天 gitlab_rails['backup_keep_time'] = 5184000 # 讓配置生效(容器中執(zhí)行) gitlab-ctl reconfigure
查看配置ip和端口是否和啟動時一致,如果不一致需要修改
# 編輯gitlab.yml文件(gitlab重啟后需要重新配置)
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
# 將文件中的port改成8090,和啟動時候映射的端口一致
gitlab:
host: 192.168.1.201
port: 8090
https: false
或者
vi /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
# 將文件中的port改成8090,和啟動時候映射的端口一致
gitlab:
# 虛擬機地址
host: 192.168.1.201
port: 8090
https: false
# 讓配置生效(容器中執(zhí)行)
gitlab-ctl restart
4.默認密碼以及重置密碼
默認用戶名:root
啟動密碼位置:cat /var/gitlab/etc/initial_root_password 或者容器內(nèi)部(docker exec -it gitlab /bin/bash)cat /etc/gitlab/initial_root_password
# 重置密碼
# 進入容器內(nèi)部
docker exec -it gitlab /bin/bash
# 進入控制臺,需要等一會,-e production:強制指定Rails控制臺運行在production環(huán)境
gitlab-rails console -e production
# 查詢id為1的用戶,id為1的用戶是超級管理員
# 會輸出=> #<User id:1 @root>
user = User.where(id:1).first
# 修改密碼
user.password='Welcome@2025!'
# 保存(長度至少8個字符等校驗會報錯:Validation failed: Password must not contain commonly used combinations of words and letters, Password is too short (minimum is 8 characters) (ActiveRecord::RecordInvalid))
user.save!
# 測試密碼是否正確,正確會返回=>true
user.valid_password?('Welcome@2025!')
# 退出
exit
5.訪問
瀏覽器訪問:ip:port
192.168.1.201:8090
5.1 關(guān)閉注冊功能
登錄頁面存在注冊功能

關(guān)閉注冊功能:
點擊Admin–Settings–General–Sign-up restrictions–取消掉Sign-up enabled選項前面的勾
最后點擊下面的Save changes


5.2 設(shè)置中文頁面
點擊頭像–Preferences

Preferences–Localization–Language–選擇Chinese, Simplified-簡體中文
最后點擊下面的Save changes保存

退出之后登錄就是中文頁面

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker部署用Python編寫的Web應(yīng)用的實踐
本文主要介紹了Docker部署用Python編寫的Web應(yīng)用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
一次Docker中Redis連接暴增的問題排查實戰(zhàn)記錄
這篇文章主要給大家介紹了一次Docker中Redis連接暴增的問題排查的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Docker構(gòu)建python Flask+ nginx+uwsgi容器
這篇文章主要介紹了Docker構(gòu)建python Flask+ nginx+uwsgi容器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
docker運行elasticsearch+kibana+head集群全過程
這篇文章主要介紹了docker運行elasticsearch+kibana+head集群全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2026-03-03
Docker中Compose與Kubernetes的區(qū)別詳解
這篇文章主要給大家介紹了關(guān)于Docker中Compose與Kubernetes區(qū)別的相關(guān)資料,Docker Compose和Kubernetes(簡稱k8s)都是容器編排工具,需要的朋友可以參考下2023-08-08

