使用Docker 快速部署 gitlab

安裝 gitlab

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

  • 環境: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

$ 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 已經指定了必要參數,能夠不修改,後續有須要再修改),修改保存之後須要重啓容器shell

$ docker restart gitlab

首次訪問 gitlab

使用域名gitlab.test.com或者該主機 IP 首次登錄時會要求設置 root 用戶的密碼,完成後就能夠用 root 和新設密碼登錄;而後按需建立 Group, User, Projects等,還有相關配置。
使用Docker 快速部署 gitlabbash

備份數據

不管是企業、組織、我的都十分重視代碼資產,以前咱們的 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 服務運行。app

升級 gitlab

由於前面使用了 docker 方式安裝,所以 gitlab 升級很方便。ssh

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

參考

相關文章
相關標籤/搜索