技术栈

主页 > 系统 >

运维记录:Gitlab迁移 (docker篇)

Gitlab迁移(Docker版)

起因

公司的gitlab之前一直是安装在阿里云上的,考虑到隐私因素和安全性,准备迁移到本地的内网服务器内。而且容器化现在的流行和一些好的特性,准备这次用docker来部署gitlab。

分析

之前的gitlab用的一键安装包,数据库是postgresql

规划

启动三个docker容器
一个容器运行gitlab 
一个容器运行postgresql,然后 link到gitlab上。 
一个容器运行Redis,然后 link到gitlab上。

docker的安装的话这里就不说了,自行去搜各个系统的安装方法。

安装方法

我们先pull镜像然后创建持久化目录,

sudo docker pull sameersbn/postgresql:9.4

sudo mkdir -p  /opt/postgresql/data

启动postgresql容器。

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

先pull redis image

sudo docker pull sameersbn/redis:latest

启动 redis 容器

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

先把老版的Gitlab image pull回来

sudo docker pull sameersbn/gitlab:8.16.6

创建数据目录

sudo mkdir -p /opt/gitlab/data

这个目录会映像到窗口的/home/git/data目录上,所以这里保存了所有的数据,请一定不要删除这里的内容。
初始化
然后配置容器

docker run --name gitlab -i -t --rm --link postgresql:postgresql --link redis:redisio 
  -e "DB_USER=gitlab" -e "DB_PASS=password" 
  -e "DB_NAME=gitlabhq_production" 
  -e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' 
-e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' 
-e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' 
  -v /opt/gitlab/data:/home/git/data 
  sameersbn/gitlab:8.16.6 app:rake gitlab:setup

恢复
这里要先把之前的备份放在/opt/gitlab/data/backup 下面
BACKUP 参数是备份名的前缀

docker run --name gitlab -it --rm  
-p 10022:22 -p 10080:80 
--link postgresql:postgresql --link redis:redisio 
-e "DB_USER=gitlab" -e "DB_PASS=password" 
-e "DB_NAME=gitlabhq_production" 
-e "GITLAB_HOST=10.21.12.14" 
-e "GITLAB_TIMEZONE=Beijing" -e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' 
-e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' 
-e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' 
-v /opt/gitlab/data:/home/git/data 
sameersbn/gitlab:8.16.6 app:rake gitlab:backup:restore BACKUP=1504835793_2017_09_08

这个样数据就全部到新的gitlab上了。
你会发现跟原来的一样。
启动容器
(注意:GITLAB_HOST=192.168.1.100:10080 这个参数要配置自己服务器的地址,并且带上绑定的端口,不然在网页端操作时会有问题)

docker run --name gitlab -d 
-p 10022:22 -p 10080:80 
--link postgresql:postgresql --link redis:redisio 
-e "DB_USER=gitlab" -e "DB_PASS=password" 
-e "DB_NAME=gitlabhq_production" 
-e "GITLAB_HOST=192.168.1.100:10080" 
-e "GITLAB_TIMEZONE=Beijing" 
-e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' 
-e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' 
-e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' 
-v /opt/gitlab/data:/home/git/data 
sameersbn/gitlab:8.16.6 
责任编辑:admin  二维码分享:
本文标签: docker运维linux
点击我更换图片

评论列表