docker-gitlab 的数据迁移

这篇文章介绍下如何将容器化的 gitlab 进行数据迁移。

gitlab是什么

GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

gitlab迁移背景

目前个人环境上跑了一个单机版的 gitlab, 运行命令为:

sudo docker run -d \

--env GITLAB_OMNIBUS_CONFIG="external_url 'http://xx:8181'" \

--publish 8181:8181 \

--name gitlab \

--restart always \

--volume /app/gitlab/config:/etc/gitlab \

--volume /app/gitlab/logs:/var/log/gitlab \

--volume /app/gitlab/data:/var/opt/gitlab \

gitlab/gitlab-ce:9.5.1-ce.0目前我们需要做的就是将环境配置和数据内容还原到新的环境中去。

迁移过程

备份数据库和配置文件,将数据文件与配置文件传输到新机器上。

docker exec -t gitlab-rake gitlab:backup:create备份文件位于宿主机的目录下。配置文件位于文件夹内。

新机器上运行相同的 run 命令

# 运行容器

docker run xxx

# 停止容器

docker stop gitlab

# 数据文件和配置文件替换

mv 1493107454_2017_04_25_9.1.0_gitlab_backup.tar /app/gitlab/data/backups

mv config /app/gitlab/config

重新运行容器,进入容器后断开 gitlab 与 数据库的连接

# 进入容器

docker exec -it /bin/bash

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

# 验证

gitlab-ctl status还原备份:

# 重建数据库

sudo gitlab-rake gitlab:backup:restore BACKUP=1493107454_2017_04_25_9.1.0重启 gitlab 并验证:

sudo gitlab-ctl restart

sudo gitlab-rake gitlab:check SANITIZE=true

大功告成。

参考资料

「滋磁一下」

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180402G1ML1100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券