资讯专栏INFORMATION COLUMN

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

mrcode / 1623人阅读

摘要:迁移版起因公司的之前一直是安装在阿里云上的,考虑到隐私因素和安全性,准备迁移到本地的内网服务器内。而且容器化现在的流行和一些好的特性,准备这次用来部署。分析之前的用的一键安装包,数据库是规划启动三个容器一个容器运行一个容器运行然后到上。

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 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/8004.html

相关文章

  • 运维记录Gitlab迁移docker

    摘要:迁移版起因公司的之前一直是安装在阿里云上的,考虑到隐私因素和安全性,准备迁移到本地的内网服务器内。而且容器化现在的流行和一些好的特性,准备这次用来部署。分析之前的用的一键安装包,数据库是规划启动三个容器一个容器运行一个容器运行然后到上。 Gitlab迁移(Docker版) 起因 公司的gitlab之前一直是安装在阿里云上的,考虑到隐私因素和安全性,准备迁移到本地的内网服务器内。而且容器...

    MobService 评论0 收藏0
  • 智能运维 | 如何做好持续集成——Jenkins on Mesos 实践

    摘要:而持续集成的意义就在于减少风险,和重复的过程,最终提高工作效率。第二级调度由被称作的组件组成。能和不同类型的通信,每种由相应的应用集群管理。这是的任务启动过程。数人云运维平台持续集成实践这是数人云运维平台的持续集成实践。 今天小数给大家带来的又是十足的干货:当运维遇到云计算,当Docker遇到Mesos和Jenkins,会擦出怎样的火花呢?且看来自数人云运维工程师金烨的演讲实录分享——...

    lsxiao 评论0 收藏0
  • 海航生态科技舆情大数据平台容器化改造

    摘要:本文转载自微信公众号账号,作者为海航生态科技技术研究院大数据开发工程师高颜。文章介绍了海航生态科技舆情大数据平台的容器化改造经验,包括初期技术架构应用容器化架构迁移持续发布与部署。 本文转载自微信公众号Docker(账号:dockerone),作者为海航生态科技技术研究院大数据开发工程师高颜。 文章介绍了海航生态科技舆情大数据平台的容器化改造经验,包括初期技术架构、应用容器化、架构迁...

    idealcn 评论0 收藏0
  • 应用容器env化实战

    摘要:本文是数人云工程师方志浩在微信群分享的实录,与大家聊一聊应用容器在配置管理中遇到的问题以及解决方法。数人云分测试演示生产三种环境进行持续集成发布,同时数人云组件通过进行应用容器的封装下发和管理。 本文是数人云工程师方志浩在DockOne微信群分享的实录,与大家聊一聊应用容器在配置管理中遇到的问题以及解决方法。 随着Docker技术的火热发展, Docker在代码构建发布中扮演着越来越重...

    kid143 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<