使用Docker安裝Gitlab及相關配置

最近在學習自動化部署的一些內容,自動化部署,涉及到的內容有Docker、Jenkins、Gitlab等內容,今天通過docker玩了一遍gitlab,下面是一些心得

安裝Gitlab

Docker安裝服務實在是太方便,我們通過docker來安裝Gitlab,運行如下命令查看Gitlab的鏡像文件

搜索鏡像

sudo docker search gitlab

圖片描述
看到鏡像有很多,如果OFFICIAL這一項下面是[OK] 表示爲官方的鏡像,我這裏使用第四個,因爲這是中文版的,鄙人英語不好,還是看中文版的比較舒服。
其實,中文版也就是安裝了一個語言包而已,有興趣可以自己安裝第一個,然後再手動配置中文包

下載鏡像

sudo docker pull twang2218/gitlab-ce-zh

啓動服務

docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh

查看啓動情況

// 添加-a 參數,把啓動的,沒有啓動的都列出來
sudo docker ps

圖片描述

配置Gitlab

配置的時候,我們需要進入容器當中配置,如果直接修改我們映射到容器外部的配置文件,總會出現一些奇怪的問題,爲了避免出現問題,儘量按照如下操作流程進行相關的配置和測試

第一步:進入容器

sudo docker exec -it gitlab bash

圖片描述
第二步:修改gitlab.rb文件

sudo cd /etc/gitlab
sudo vim gitlab.rb

圖片描述
第三步:修改IP和端口

該部分內容的修改是爲了解決,我們再gitlab創建項目的時候,項目訪問地址是容器id的問題

// 可以使用/ 來查找關鍵字,找到指定的內容,然後通過n來下一個查找

// 在gitlab創建項目時候http地址的host(不用添加端口)
external_url 'http://xx.xx.xx.xx'

// 在gitlab創建項目時候ssh地址的host
gitlab_rails['gitlab_ssh_host'] = 'xx.xx.xx.xx'(不用添加端口)

# docker run 的時候我們把22端口映射爲外部的8022了,這裏修改下
gitlab_rails['gitlab_shell_ssh_port'] = 8022

圖片描述
第四步:修改郵箱

在gitlab.rb文件的最後添加如下代碼

# 是否啓用
gitlab_rails['smtp_enable'] = true
# SMTP服務的地址
gitlab_rails['smtp_address'] = "smtp.qq.com"
# 端口
gitlab_rails['smtp_port'] = 465
# 你的QQ郵箱(發送賬號)
gitlab_rails['smtp_user_name'] = "[email protected]"
# 授權碼
gitlab_rails['smtp_password'] = "********"
# 域名
gitlab_rails['smtp_domain'] = "smtp.qq.com"
# 登錄驗證
gitlab_rails['smtp_authentication'] = "login"

# 使用了465端口,就需要配置下面三項
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'

# 你的QQ郵箱(發送賬號)
gitlab_rails['gitlab_email_from'] = '[email protected]'

第五步:應用配置

sudo gitlab-ctl reconfigure

第六步:重啓服務

sudo gitlab-ctl restart

第七步:驗證郵箱服務

// 在容器中進入命令行
sudo gitlab-rails console

// 測試郵件發送
sudo Notify.test_email("[email protected]","title","gitlab").deliver_now

// 退出命令行
sudo exit

// 退出容器
sudo exit

常用命令

啓動

// 第一次啓動
// 這部分命令不能直接copy,格式化只是爲了方便看
docker run -d 
-p 8443:443 
-p 8090:80 
-p 8022:22 
--restart always 
--name gitlab 
-v /usr/local/gitlab/etc:/etc/gitlab 
-v /usr/local/gitlab/log:/var/log/gitlab 
-v /usr/local/gitlab/data:/var/opt/gitlab 
--privileged=true 
twang2218/gitlab-ce-zh


// 如果停止了,用start啓動
docker start <ID || Name>
  • -d在後臺啓動
  • -p 8443:443 把容器中應用的端口443映射爲外部的8443端口
  • -p 8090:80 把容器中應用的端口80映射爲外部的8090端口
  • -p 8443:443 把容器中應用的端口443映射爲外部的8443端口
  • --restart 重啓配置
  • --name 容器啓動之後的名字
  • -v 把容器中的配置,日誌,數據映射到容器外部

通過--name配置了gitlab的名字之後,我們後續可以通過這個name對容器進行相關的啓動和停止操作

容器外停止

sudo docker stop gitlab
// 這裏的gitlab 就是我們上一步docker run 當中使用--name 配置的名字

容器外重啓

sudo docker restart gitlab

進入容器命令行

sudo docker exec -it gitlab bash

容器中應用配置

sudo gitlab-ctl reconfigure

容器中重啓服務

sudo gitlab-ctl restart

服務地址
以下是我的gitlab服務地址,僅供測試使用,後面可能會刪除,大家不要使用哈

http://118.31.225.185:8090

注意事項

如果您使用的是阿里雲服務器,需要在安全組裏面把你想要對外開放的端口打開,否則是無法訪問的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章