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

Gitlab迁移(Docker版)

原由

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

分析

以前的gitlab用的一键安装包,数据库是postgresqlredis

规划

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

docker的安装的话这里就不说了,自行去搜各个系统的安装方法。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 容器app

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

先把老版的Gitlab image pull回来dom

sudo docker pull sameersbn/gitlab:8.16.6

建立数据目录gitlab

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
相关文章
相关标签/搜索