使用Docker安裝Gitlab及相關配置

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

安裝Gitlab

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

搜索鏡像shell

sudo docker search gitlab

圖片描述
看到鏡像有不少,若是OFFICIAL這一項下面是[OK] 表示爲官方的鏡像,我這裏使用第四個,由於這是中文版的,鄙人英語很差,仍是看中文版的比較舒服。
其實,中文版也就是安裝了一個語言包而已,有興趣能夠本身安裝第一個,而後再手動配置中文包vim

下載鏡像安全

sudo docker pull twang2218/gitlab-ce-zh

啓動服務bash

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

配置的時候,咱們須要進入容器當中配置,若是直接修改咱們映射到容器外部的配置文件,總會出現一些奇怪的問題,爲了不出現問題,儘可能按照以下操做流程進行相關的配置和測試dom

第一步:進入容器ssh

sudo docker exec -it gitlab bash

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

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'] = "958317640@qq.com"
# 受權碼
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'] = '958317640@qq.com'

第五步:應用配置

sudo gitlab-ctl reconfigure

第5.1步:修改port
修改gitlab.yml文件

// 文件路徑 /opt/gitlab/embedded/service/gitlab-rails/config

sudo cd /opt/gitlab/embedded/service/gitlab-rails/config
vim gitlab.yml
// 修改port 爲8090

圖片描述

第六步:重啓服務

sudo gitlab-ctl restart

第七步:驗證郵箱服務

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

// 測試郵件發送
sudo Notify.test_email("xxx@163.com","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

注意事項

若是您使用的是阿里雲服務器,須要在安全組裏面把你想要對外開放的端口打開,不然是沒法訪問的

鄙人第一次搗鼓這個,裏面的有些概念和配置也許說的不太對,有比較懂得朋友能夠指導一二,必定感激。

相關文章
相關標籤/搜索