1. 程式人生 > >使用Docker 快速部署 gitlab

使用Docker 快速部署 gitlab

star docs tlab ESS del sset 我們 新的 ef7

安裝 gitlab

gitlab 是深受企業用戶喜愛的基於 git 的代碼管理系統。本文使用 Docker 方式安裝 gitlab:
這是一種快速高效的部署方式,相對於傳統方式,這種部署可以有效的節省時間和過程。

  • 環境:Ubuntu 16.04,虛機內存/CPU/存儲請根據實際使用情況配置,一般4C/8G/200G足夠
  • 安裝 docker: 18.06.1-ce

準備啟動腳本

$ cat > gitlab-setup.sh << EOF
#!/bin/bash
# 註意:設置 gitlab_shell_ssh_port 是為了後續可以使用 SSH 方式訪問你的項目
docker run --detach \    --hostname gitlab.test.com \    --env GITLAB_OMNIBUS_CONFIG="external_url ‘http://gitlab.test.com/‘; gitlab_rails[‘gitlab_shell_ssh_port‘] = 6022;" \    --publish 443:443 --publish 80:80 --publish 6022: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 \    registry.docker-cn.com/gitlab/gitlab-ce:11.2.2-ce.0
EOF

執行啟動腳本:sh gitlab-setup.sh 執行成功後,等待數分鐘可以看到

$ docker ps -a
CONTAINER ID        IMAGE                                                 COMMAND             CREATED             STATUS                   PORTS                                                            NAMES
4f9d5f97f494        registry.docker-cn.com/gitlab/gitlab-ce:11.2.2-ce.0   "/assets/wrapper"   1 minutes ago       Up 9 minutes (healthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:6022->22/tcp   gitlab

配置 gitlab

$ docker exec -it gitlab vi /etc/gitlab/gitlab.rb

請閱讀後修改(因為前面docker run 已經指定了必要參數,可以不修改,後續有需要再修改),修改保存以後需要重啟容器

$ docker restart gitlab

首次訪問 gitlab

使用域名gitlab.test.com或者該主機 IP 首次登陸時會要求設置 root 用戶的密碼,完成後就可以用 root 和新設密碼登陸;然後按需創建 Group, User, Projects等,還有相關配置。
技術分享圖片

備份數據

無論是企業、組織、個人都十分重視代碼資產,之前我們的 gitlab 安裝是單機版的,雖然可以有硬盤 raid 等保護,還有是丟失 gitlab 數據和配置的風險,因此我們有必要再做一些備份操作。這裏利用 crontab 定期執行 rsync 命令備份到其他服務器。

# 創建備份腳本
cat > /root/gitlab-backup.sh << EOF
#!/bin/bash
# 請事先配置 gitlab 服務器到備份服務器的免密碼 ssh 登陸
rsync -av --delete /srv/gitlab/config ‘-e ssh -l root‘ 192.168.2.xx:/backup_gitlab/config
rsync -av --delete /srv/gitlab/data ‘-e ssh -l root‘ 192.168.2.xx:/backup_gitlab/data
EOF

# 創建並應用 crontab
cat > /etc/cron.d/gitlab-backup << EOF
## 每3個小時同步備份一次,具體根據需要修改
11 */3 * * * root bash /root/gitlab-backup.sh > /root/gitlab/sync.log 2>&1
EOF

如果 gitlab 服務器真的出現不可恢復的故障,丟失數據,那麽至少保留有3小時前的備份,利用備份的文件,同樣再用 docker 掛載 volume的方式運行,這樣就可以恢復原 gitlab 服務運行。

升級 gitlab

因為前面使用了 docker 方式安裝,因此 gitlab 升級很方便。

  • 升級前停止/刪除容器:$ docker stop gitlab && docker rm gitlab
  • 如上節執行備份數據
  • 修改 gitlab-setup.sh 指定新的版本,執行該腳本

參考

  • 1.Install GitLab with Docker

使用Docker 快速部署 gitlab