1. 程式人生 > >docker安裝配置gitlab詳細過程 docker安裝配置gitlab詳細過程

docker安裝配置gitlab詳細過程 docker安裝配置gitlab詳細過程

docker安裝配置gitlab詳細過程

 

 

獲取映象

1、方法一

1 docker pull beginor/gitlab-ce:11.0.1-ce.0

2、方法二
如果伺服器網路不好或者pull不下來映象,只能在其它網路比較好的機器上pull下來映象,匯出成一個檔案,
再下載上傳到網路不好的機器上,然後再從檔案中匯出來,這樣在網路不好的機器上也能使用docker映象了。

 

執行

1、通常會將 GitLab 的配置 (etc) 、 日誌 (log) 、資料 (data) 放到容器之外, 便於日後升級, 因此請先準備這三個目錄。

1 2 3 mkdir -p /mnt/gitlab/etc
mkdir -p /mnt/gitlab/log mkdir -p /mnt/gitlab/data

2、準備好這三個目錄之後, 就可以開始執行 Docker 映象了。 我的建議是使用unless-stopped 作為重啟策略, 
因為這樣可以手工停止容器, 方便維護。

完整的執行命令如下:

1 2 3 4 5 6 7 8 9 10 docker run \      --detach \      --publish 8443:443 \      --publish 8090:80 \      --name gitlab \      --restart unless-stopped \      -v /mnt/gitlab/etc:/etc/gitlab \      -v /mnt/gitlab/log:/ var /log/gitlab \      -v /mnt/gitlab/data:/ var /opt/gitlab \      beginor/gitlab-ce:11.0.1-ce.0

 配置GitLab主機名

1、修改/mnt/gitlab/etc/gitlab.rb

 把external_url改成部署機器的域名或者IP地址

1 vim /mnt/gitlab/etc/gitlab.rb

 

 2、修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

1 vim /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

找到關鍵字 * ## Web server settings * 

將host的值改成對映的外部主機ip地址和埠,這裡會顯示在gitlab克隆地址

到此為止,gitlab的web管理頁面就可以正常訪問

如果還是不能正常訪問的話,檢查埠是否被佔用?

埠被佔用(這裡不做)

如果埠號被佔用,改了預設的80埠,後面要接埠號

1 external_url  'http://192.168.182.129:8090'  注:這裡容器內沒改,只是對映到8090

修改NGINX監聽的埠為9999

1 2 nginx[ 'listen_addresses' ] = [ '*' ] nginx[ 'listen_port' ] = 8090

如果8080埠被Tomcat佔用,會出現502的頁面

因此需要修改unicorn的配置,如下

1 2 3 4 5 6 7 ### Advanced settings # unicorn['listen'] = '127.0.0.1' # unicorn['port'] = 8080   # 假設有Tomcat佔用了8080,因此改為8082試一試   unicorn[ 'listen' ] =  '127.0.0.1'   unicorn[ 'port' ] = 8082


修改Gitlab資料儲存路徑(這裡不做)

預設的Gitlab資料儲存路徑,在目錄/var/opt/gitlab/git-data下,防止以後資料過大,所以可以修改路徑儲存為/data/gitlabData

1 2 3 4 5 6 vim /mnt/gitlab/etc/gitlab.rb ### For setting up different data storing directory ###! Docs: https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory ###! **If you want to use a single non-default directory to store git data use a ###!   path that doesn't contain symlinks.** # git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data", 'gitaly_address' => 'unix:/var/opt/gitlab/gitaly/gitaly.socket' } })
1 2 #edited by ouyangpeng 2017-8-10  配置gitlab的資料儲存位置為/data目錄下,保證硬碟安全 git_data_dirs({  "default"  => {  "path"  =>  "/data/gitlabData"  } })

設定完後,過一段使用時間,可以看到該目錄下的resposities

配置並啟動GitLab

像上面步驟修改了GitLab的ip地址一樣,臨時修改了GitLab的配置之後,得執行如下的命令,應用重新配好的配置並重啟GitLab,然後檢視GitLab的狀態。

因為是容器,所以要進入到gitlab容器中執行命令

1 docker exec -ti gitlab /bin/bash

然後

1 2 3 gitlab-ctl reconfigure  #花時間比較多 gitlab-ctl restart    #改IP重啟就可以了 gitlab-ctl status

登陸

開啟瀏覽器,輸入本機的ip地址並登陸

1 http: //192.168.182.129:8090

  預設帳戶的使用者名稱是root,第一次訪問時,將被重定向到密碼重置螢幕,登入後,您可以更改使用者名稱。

常用的幾個Gitlab命令

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # 重新應用gitlab的配置 gitlab-ctl reconfigure   # 重啟gitlab服務 gitlab-ctl restart   # 檢視gitlab執行狀態 gitlab-ctl status   #停止gitlab服務 gitlab-ctl stop   # 檢視gitlab執行日誌 gitlab-ctl tail   # 停止相關資料連線服務 gitlab-ctl stop unicorn gitlab-ctl stop sideki

 

 錯誤

1、docker啟動報錯資訊如下

1 Error response  from  daemon: driver failed programming external connectivity  on  endpoint quirky_allen<strong>解決:</strong>

解決

檢查docker埠對映是否衝突
重啟docker服務後再啟動容器

1 2 systemctl restart docker docker start gitlab

 

獲取映象

1、方法一

1 docker pull beginor/gitlab-ce:11.0.1-ce.0

2、方法二
如果伺服器網路不好或者pull不下來映象,只能在其它網路比較好的機器上pull下來映象,匯出成一個檔案,
再下載上傳到網路不好的機器上,然後再從檔案中匯出來,這樣在網路不好的機器上也能使用docker映象了。

 

執行

1、通常會將 GitLab 的配置 (etc) 、 日誌 (log) 、資料 (data) 放到容器之外, 便於日後升級, 因此請先準備這三個目錄。

1 2 3 mkdir -p /mnt/gitlab/etc mkdir -p /mnt/gitlab/log mkdir -p /mnt/gitlab/data

2、準備好這三個目錄之後, 就可以開始執行 Docker 映象了。 我的建議是使用unless-stopped 作為重啟策略, 
因為這樣可以手工停止容器, 方便維護。

完整的執行命令如下:

1 2 3 4 5 6 7 8 9 10 docker run \      --detach \      --publish 8443:443 \      --publish 8090:80 \      --name gitlab \      --restart unless-stopped \      -v /mnt/gitlab/etc:/etc/gitlab \      -v /mnt/gitlab/log:/ var /log/gitlab \      -v /mnt/gitlab/data:/ var /opt/gitlab \      beginor/gitlab-ce:11.0.1-ce.0

 配置GitLab主機名

1、修改/mnt/gitlab/etc/gitlab.rb

 把external_url改成部署機器的域名或者IP地址

1 vim /mnt/gitlab/etc/gitlab.rb

 

 2、修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

1 vim /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

找到關鍵字 * ## Web server settings * 

將host的值改成對映的外部主機ip地址和埠,這裡會顯示在gitlab克隆地址

到此為止,gitlab的web管理頁面就可以正常訪問

如果還是不能正常訪問的話,檢查埠是否被佔用?

埠被佔用(這裡不做)

如果埠號被佔用,改了預設的80埠,後面要接埠號

1 external_url  'http://192.168.182.129:8090'  注:這裡容器內沒改,只是對映到8090

修改NGINX監聽的埠為9999

1 2 nginx[ 'listen_addresses' ] = [ '*' ] nginx[ 'listen_port' ] = 8090

如果8080埠被Tomcat佔用,會出現502的頁面

因此需要修改unicorn的配置,如下

1 2 3 4 5 6 7 ### Advanced settings # unicorn['listen'] = '127.0.0.1' # unicorn['port'] = 8080   # 假設有Tomcat佔用了8080,因此改為8082試一試   unicorn[ 'listen' ] =  '127.0.0.1'   unicorn[ 'port' ] = 8082


修改Gitlab資料儲存路徑(這裡不做)

預設的Gitlab資料儲存路徑,在目錄/var/opt/gitlab/git-data下,防止以後資料過大,所以可以修改路徑儲存為/data/gitlabData

1 2 3 4 5 6 vim /mnt/gitlab/etc/gitlab.rb ### For setting up different data storing directory ###! Docs: https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory ###! **If you want to use a single non-default directory to store git data use a ###!   path that doesn't contain symlinks.** # git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data", 'gitaly_address' => 'unix:/var/opt/gitlab/gitaly/gitaly.socket' } })
1 2 #edited by ouyangpeng 2017-8-10  配置gitlab的資料儲存位置為/data目錄下,保證硬碟安全 git_data_dirs({  "default"  => {  "path"  =>  "/data/gitlabData"  } })

設定完後,過一段使用時間,可以看到該目錄下的resposities

配置並啟動GitLab

像上面步驟修改了GitLab的ip地址一樣,臨時修改了GitLab的配置之後,得執行如下的命令,應用重新配好的配置並重啟GitLab,然後檢視GitLab的狀態。

因為是容器,所以要進入到gitlab容器中執行命令

1 docker exec -ti gitlab /bin/bash

然後

1 2 3 gitlab-ctl reconfigure  #花時間比較多 gitlab-ctl restart    #改IP重啟就可以了 gitlab-ctl status

登陸

開啟瀏覽器,輸入本機的ip地址並登陸

1 http: //192.168.182.129:8090

  預設帳戶的使用者名稱是root,第一次訪問時,將被重定向到密碼重置螢幕,登入後,您可以更改使用者名稱。

常用的幾個Gitlab命令

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # 重新應用gitlab的配置 gitlab-ctl reconfigure   # 重啟gitlab服務 gitlab-ctl restart   # 檢視gitlab執行狀態 gitlab-ctl status   #停止gitlab服務 gitlab-ctl stop   # 檢視gitlab執行日誌 gitlab-ctl tail   # 停止相關資料連線服務 gitlab-ctl stop unicorn gitlab-ctl stop sideki

 

 錯誤

1、docker啟動報錯資訊如下

1 Error response  from  daemon: driver failed programming external connectivity  on  endpoint quirky_allen<strong>解決:</strong>

解決

檢查docker埠對映是否衝突
重啟docker服務後再啟動容器

1 2 systemctl restart docker docker start gitlab