一、前提條件
(1) 存在docker
(2) 服務器可以聯網(外網)
(3) 服務器內存至少4G(內存不夠會出現502錯誤)
內存不足502錯誤如下圖所示:
二、安裝
本次安裝在CentOS7下進行,下面的命令建議復制到記事本后再從記事本復制
# 1、查找GitLab鏡像
docker search gitlab
# 2、拉取gitlab docker鏡像
docker pull gitlab/gitlab-ce:latest
# 3、運行GitLab並運行容器
docker run \ -itd \ -p 9980:80 \ -p 9922:22 \ -v /usr/local/gitlab-test/etc:/etc/gitlab \ -v /usr/local/gitlab-test/log:/var/log/gitlab \ -v /usr/local/gitlab-test/opt:/var/opt/gitlab \ --restart always \ --privileged=true \ --name gitlab-test \ gitlab/gitlab-ce
命令解釋:
-i 以交互模式運行容器,通常與 -t 同時使用命令解釋:
-t 為容器重新分配一個偽輸入終端,通常與 -i 同時使用
-d 后台運行容器,並返回容器ID
-p 9980:80 將容器內80端口映射至宿主機9980端口,這是訪問gitlab的端口
-p 9922:22 將容器內22端口映射至宿主機9922端口,這是訪問ssh的端口
-v /usr/local/gitlab-test/etc:/etc/gitlab 將容器/etc/gitlab目錄掛載到宿主機/usr/local/gitlab-test/etc目錄下,若宿主機內此目錄不存在將會自動創建,其他兩個掛載同這個一樣
--restart always 容器自啟動
--privileged=true 讓容器獲取宿主機root權限
--name gitlab-test 設置容器名稱為gitlab-test
gitlab/gitlab-ce 鏡像的名稱,這里也可以寫鏡像ID
# 重點:接下來的配置請在容器內進行修改,不要在掛載到宿主機的文件上進行修改。否則可能出現配置更新不到容器內,或者是不能即時更新到容器內,導致gitlab啟動成功,但是無法訪問
# 4、進入容器內
docker exec -it gitlab-test /bin/bash
# 5、修改gitlab.rb (先查看下一個步驟再決定是否進行本步驟,本步驟是可以跳過的)
# 打開文件 vi /etc/gitlab/gitlab.rb # 這個文件是全注釋掉了的,所以直接在首行添加如下配置 # gitlab訪問地址,可以寫域名。如果端口不寫的話默認為80端口 (圖片上拼寫錯誤,正確的是external_url) external_url 'http://192.168.52.128:9980' # ssh主機ip gitlab_rails['gitlab_ssh_host'] = '192.168.52.128' # ssh連接端口 gitlab_rails['gitlab_shell_ssh_port'] = 9922
# 6、修改gitlab.yml (這一步原本不是必須的,因為gitlab.rb內配置會覆蓋這個,為了防止沒有成功覆蓋所以我在這里進行配置,當然你也可以選擇不修改gitlab.rb直接修改這里)
# 打開文件 vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml # 配置一:找到gitlab標簽,將其子標簽如下修改

# 配置解釋: # host:訪問的IP # port:訪問的端口 # 以上兩個和gitlab.rb內external_url的配置保持一致 # ssh_host:ssh主機ip,和gitlab.rb內gitlab_rails['gitlab_ssh_host']保持一致 # 配置二:找到gitlab_shell標簽下的ssh_port,將其修改為9922 #(和gitlab.rb內gitlab_rails['gitlab_shell_ssh_port'] 保持一致)

# 保存並退出 :wq
# 7、讓修改后的配置生效
gitlab-ctl reconfigure
# 8、重啟gitlab
gitlab-ctl restart
# 9、退出容器
exit
# 10、在游覽器輸入如下地址,訪問gitlab(eaxternal_url配置的就是這個)
http://192.168.52.128:9980
如果訪問不成功的話:
(1) 進入容器查看gitlab.rb和gitlab.yml文件是否配置成功
(2) 查看防火牆是否開放9980、9922端口
# 11、第一次訪問默認是root賬戶,會需要修改密碼(密碼至少8位數,出現如下界面就基本上部署成功了)
# 12、輸入新密碼后進行登錄
root/gitlab123456
# 13、登錄后界面如下圖,創建一個新項目
# 14、輸入信息,創建項目
# 15、檢查這里兩處的ip的端口是否是你配置的
如果這里兩處的端口和ip和配置的不一樣,再次進入容器檢查gitlab.yml文件
如下圖顯示:
若不一樣,將其修改為你的配置,然后:wq,再進行下面的操作
gitlab-ctl reconfigure gitlab-ctl restart
# 16、安裝到此結束
三、關閉用戶注冊
1、使用root用戶登錄gitlab
2、點擊【Admin Area】
3、點擊【Settings】
4、點擊Sign-in restrictions這一欄的【Expand】
5、取消勾選
6、往下滑動,找到保存按鈕,點擊保存
7、進入登錄界面,發現注冊的窗口已經消失了
四、郵件配置
未完成~~~
五、自動備份配置
未完成~~~