Docker安裝及配置GitLab

GitLabGitHub一樣,都是基於Git開發了一些功能,然後商業化的產品,它倆唯一的不同之處在於GitLab可以私有化部署,這也就導致受到了很多企業的青睞。

本篇文章主要介紹如何以Docker化的方式安裝GitLab,以及簡單的配置,使用的是GitLab-CE社區版,操作係統CentOS 7

環境

  • 係統更新並重啟
$ sudo yum update -y
$ sudo reboot
  • 環境查看
$ hostname
gitlab
$ uname -a
Linux gitlab 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ whoami
ansheng
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
$ getenforce
Disabled
$ sudo systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

安裝

  • 安裝docker
$ curl -sSL https://get.docker.com/ | sudo sh
$ sudo systemctl enable --now docker
  • 運行GitLab
$ sudo docker run --detach \
  --hostname git.ansheng.me \
  --publish 443:443 \
  --publish 80:80 \
  --publish 8022:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

上麵的配置中,請根據自己的實際情況進行調整,GitLab產生的數據都將存儲在/srv/gitlab/目錄下,如果不需要SSL是不用開放443端口的,因為係統本身占用了22端口,所以我把默認的22改成了8022

  • 數據目錄介紹
本地位置 容器位置 作用
/srv/gitlab/data /var/opt/gitlab 數據
/srv/gitlab/logs /var/log/gitlab 日誌
/srv/gitlab/config /etc/gitlab 配置文件
  • 訪問測試

啟動之後可能需要很長時間才能運行起來,你可以通過sudo docker logs -f gitlab來跟蹤日誌,第一次訪問的時候係統會要求設置管理員密碼

gitlab-set-password

設置完密碼之後進行登陸,默認的用戶名是root

gitlab-login

登陸成功之後,如下是默認的首頁,至此,安裝部分以及完成。

gitlab-home

創建一個項目試試

接著上圖,我們點擊首頁上麵的Create a project來創建一個項目

gitalab-create-project

如上,我們創建了一個私有的項目,項目命名為caca,隸屬人root下,我這裏隻是作為演示,生產環境中是不會使用root用戶的,畢竟不太安全,創建完成之後會進入項目首頁,如下:

gitlab-project-home

然後我們點擊右上角的Clone,嚐試把項目下載下來

gitlab-project-clone

複製Clone with SSH下的指令git clone ssh://git@git.ansheng.me/root/caca.git,這條指令默認使用的是22端口,但是我們在運行gitlab時指定的端口是8022,所以我們還需要進行一些配置才能夠正確的clone項目。

配置

容器使用的是官方Omnibus GitLab軟件包,配置文件默認在/etc/gitlab/gitlab.rb中,若要修改配置,我們首先需要進入容器

$ sudo docker exec -it gitlab /bin/bash
root@git:/#
  • 基本的配置
$ vim /etc/gitlab/gitlab.rb
# 默認使用的是22端口,我們需要更改為8022
gitlab_rails['gitlab_shell_ssh_port'] = 8022
# 如果你更換了域名,需要將下麵的配置改為新域名,這裏不需要更改
# external_url 'http://newgit.ansheng.me'

當然你也可以編輯/srv/gitlab/config/gitlab.rb這個配置文件

然後退出並重啟容器使配置生效

$ sudo docker restart gitlab

再次刷新頁麵,複製Clone with SSH鏈接,發現端口以及改成了8022

gitlab-project-change-ssh

然後你就可以愉快的把項目clone到本地玩耍了!

  • 配置郵件

郵件還是挺重要的,修改密碼,消息通知等都會用到郵件,若要配置郵件,進入gitlab容器,然後打開配置文件

$ vim /etc/gitlab/gitlab.rb
# 增加如下配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "xxx@gmail.com"
# 這裏的密碼是應用專用密碼,不是你登陸gmail的密碼
gitlab_rails['smtp_password'] = "xxxx"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer' 

配置修改完之後需要reconfig下,執行如下指令

$ gitlab-ctl reconfigure

然後進入gitlab的console來發送一封測試郵件

$ gitlab-rails console
Notify.test_email('ooo@gmail.com', 'Message Subject', 'Message Body').deliver_now

打開你的郵箱,你就可以收到如下的測試郵件

gitlab-send-mail

  • 關閉注冊

在登陸的時候不知道你有沒有發現,旁邊還有一個注冊欄

gitlab-register

作為一個私有的git,有時我們是不希望別人進行注冊的,所以我們需要關閉注冊功能,若要添加用戶,隻能讓管理員手動添加。

關閉注冊功能需要使用root用戶,以root用戶登陸之後執行如下操作

  1. 點擊頂部欄的Admin Area
  2. 點擊左側欄的Settings
  3. 找到Sign-up Restrictions設置;
  4. 取消勾選Sign-up enabled並點擊下方的保存;

最後再次打開你的登陸頁麵就會發現已經沒有注冊功能了

gitlab-login

更新

GitLab更新還是挺勤快的….,還是使用新版本吧

  • 停止正在運行的容器
$ sudo docker stop gitlab
  • 刪除現有容器
$ sudo docker rm gitlab
  • 拉取最新的image
$ sudo docker pull gitlab/gitlab-ce:latest
  • 使用先前指定的選項再次創建容器
$ sudo docker run --detach \
  --hostname git.ansheng.me \
  --publish 443:443 \
  --publish 80:80 \
  --publish 8022:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

然後經過漫長的等待,再次打開會發現版本已經是最新的了,然後打開頂部欄的Admin Area,有一個欄目Components,會顯示你當前gitlab的組件版本

gitlab-admin-components

當然我們剛剛升級完,肯定是最新的咯

參考文獻

相關說明:

1、VIP會員無限製任意下載,免積分。立即前往開通>>

2、下載積分可通過日常 簽到綁定郵箱 以及 積分兌換 等途徑獲得!

3、本站資源大多存儲在雲盤,如出現鏈接失效請評論反饋,如有密碼,均為:www.ipipn.com。

4、所有站內資源僅供學習交流使用。未經原版權作者許可,禁止用於任何商業環境,否則後果自負。為尊重作者版權,請購買正版作品。

5、站內資源來源於網絡公開發表文件或網友分享,如侵犯您的權益,請聯係管理員處理。

6、本站提供的源碼、模板、軟件工具等其他資源,都不包含技術服務,請大家諒解!

7、源碼、模板等資源會隨著技術、壞境的升級而存在部分問題,還請慎重選擇。

PS.源碼均收集自網絡,如有侵犯閣下權益,請發信件至: admin@ipipn.com .


源站網 » Docker安裝及配置GitLab

發表評論

讚助本站發展 維持服務器消耗

全站源碼免費下載 立刻讚助