转载

使用Docker来搭建gitlab

作者: 薛斌雷 (绿茶浏览器后端开发)

使用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<br /> rpm -Uvh epel-release-6-8.noarch.rpm<br /> sudo yum update -y<br /> sudo yum install -y docker-io<br /> usermod -a -G docker your_user_name

Daocloud加速器

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

狂点我注册

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

准备工作

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

docker pull sameersbn/gitlab:7.11.2<br /> docker pull sameersbn/postgresql:9.4<br /> docker pull sameersbn/redis:latest

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

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

mkdir /home/username/opt/gitlab/data<br /> mkdir /home/username/opt/postgresql/data

启动postgresql

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

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

启动redis

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

启动gitlab

docker run --name='gitlab' -d /<br /> --link redis:redisio /<br /> -v /home/username/opt/gitlab/data:/home/git/data /<br /> -p 10022:22 -p 10080:80 /<br /> -e 'GITLAB_PORT=10080' /<br /> -e 'GITLAB_SSH_PORT=10022' /<br /> --link postgresql:postgresql /<br /> -e 'GITLAB_EMAIL=gitlab@daocloud.io' /<br /> -e 'GITLAB_BACKUPS=daily' /<br /> -e 'GITLAB_HOST=gitlab.daocloud.io' /<br /> -e 'GITLAB_SIGNUP=true' /<br /> -e 'GITLAB_GRAVATAR_ENABLED=false' /<br /> 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 /<br /> 你的设置<br /> 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了。

本文来自“DaoCloud分享写作计划”,这项计划旨在为开发者提供一个平台,分享使用Docker的心得体会和技术经验。DaoCloud将为文章作者提供一定的物质奖励,具体方式请访问: DaoCloud写作分享计划 ,欢迎Docker爱好者和DaoCloud用户踊跃投稿!

正文到此结束
Loading...