使用Docker 快速部署 gitlab
阿新 • • 發佈:2019-01-21
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