所有的团队都面临同样一个问题,代码库的版本管理。
gitlab可以说是开源的github,可以自行部署在任何地方。
试用可以访问 gitlab 。
那对于团队来讲,我要怎么去部署、升级、备份、迁移才是最关键的地方。这个时候有了Docker这么牛逼的东西出现了。
最最最根本的就是它不会影响你现有的环境
这里不推荐使用官网的安装方式,另外使用vagrant的同学们可以看过来了,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
这个时候你就要用最最牛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
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
上述的位置与数据文件夹保持一致。
docker run --name=redis -d sameersbn/redis:latest
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 '[email protected]' \
-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就可以了。
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了。