使用Docker来搭建gitlab(备份)

所有的团队都面临同样一个问题,代码库的版本管理。

gitlab可以说是开源的github,可以自行部署在任何地方。

试用可以访问 gitlab 。

那对于团队来讲,我要怎么去部署、升级、备份、迁移才是最关键的地方。这个时候有了Docker这么牛逼的东西出现了。

最最最根本的就是它不会影响你现有的环境

这里不推荐使用官网的安装方式,另外使用vagrant的同学们可以看过来了,docker才是王道。

这里废话一点,讲点docker安装的东西,了解的可以跳过。

安装docker

这里以centos6.5为例,其他详见官网

wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
sudo yum update -y
sudo yum install -y docker-io
usermod -a -G docker your_user_name

Daocloud加速器

这个时候你就要用最最牛13的Daocloud加速器了,国内网络的福音啊。

狂点我注册

这个时候只要根据官网提示进行使用即可,体验飞一般的速度,不一样的酸爽。这里插入一段硬广,DaoCloud不仅仅提供高速下载的加速器,他们是国内最早的一站式Docker应用打包发布平台,提供了持续集成、镜像构建、发布管理和容器托管的全套服务。

准备工作

有兴趣的可以访问docker镜像首页来看目前最棒的gitlab docker镜像的官方使用指南。

docker pull sameersbn/gitlab:7.11.2
docker pull sameersbn/postgresql:9.4
docker pull sameersbn/redis:latest

上述的版本大家可以去上面的地址查找最新的版本。

创建数据文件夹, 位置随意,大家记下即可

mkdir /home/username/opt/gitlab/data
mkdir /home/username/opt/postgresql/data

启动postgresql

docker run --name=postgresql -d \
-e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab' -e 'DB_PASS=password' \
-v /home/username/opt/postgresql/data:/var/lib/postgresql \
sameersbn/postgresql:9.4

上述的位置与数据文件夹保持一致。

启动redis

docker run --name=redis -d sameersbn/redis:latest

启动gitlab

docker run --name='gitlab' -d \
--link redis:redisio \
-v /home/username/opt/gitlab/data:/home/git/data \
-p 10022:22 -p 10080:80 \
-e 'GITLAB_PORT=10080' \
-e 'GITLAB_SSH_PORT=10022' \
--link postgresql:postgresql \
-e 'GITLAB_EMAIL=gitlab@daocloud.io' \
-e 'GITLAB_BACKUPS=daily' \
-e 'GITLAB_HOST=gitlab.daocloud.io' \
-e 'GITLAB_SIGNUP=true' \
-e 'GITLAB_GRAVATAR_ENABLED=false' \
sameersbn/gitlab:7.11.2

上述的位置与数据文件夹保持一致,更多参数请见 这里 。

上述设置会每天自动进行备份,建议开启。

手动备份


docker stop gitlab
docker rm gitlab

docker run --name='gitlab' -it --rm \
你的设置
sameersbn/gitlab:7.11.2 app:rake gitlab:backup:create

这样就会在/home/username/opt/gitlab/data/backups下面创建备份,备份的所属者请看下ls -la /home/username/opt/gitlab/data/backups下面的文件,迁移的时候有用,另外迁移的话,也只需要保留这个备份出来的文件即可。

恢复备份

确保你的gitlab的版本跟备份的版本一致。

docker run --name='gitlab' -it --rm \
你的设置
sameersbn/gitlab:7.11.2 app:rake gitlab:backup:restore

这样就能确保迁移之后的版本跟迁移之前的版本一样了。

迁移

这个时候你只要在目标机器上做完准备工作之后,启动一次gitlab,然后把之前备份的文件放到/home/username/opt/gitlab/data/backups下面,确保备份文件的权限问题之后恢复备份即可

升级

先备份,防止升级后出现问题,然后docker pull新的版本之后,直接run就可以了。

最后讲一下,如何从你的库来源完全镜像到gitlab吧


git clone --mirror https://github.com/exampleuser/repository-to-mirror.git

git remote set-url --push origin https://github.com/exampleuser/mirrored

git fetch -p origin
git push --mirror

这个能保证你的来源在被提交的时候,gitlab能保持完全一致。最后只要指定时间关闭来源的提交之后久就可以无缝切换到gitlab了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值