zoukankan      html  css  js  c++  java
  • gitlab数据迁移到docker容器

    需求:想把服务器上的gitlab迁移到docker容器里面
    注意:gitlab的迁移,必须保持gitlab的版本一致,此处使用的是:8.4.3,数据库版本和类型一致,此处使用的是postgresql 9.5


    原来服务器的版本信息:
    系统:centos 7.2
    gitlab:8.4.3
    postgresql:9.5
    redis

    基础:docker的安装
    yum install docker -y
    service docker restart


    由于docker去拉取国外的镜像,速度超级慢,严重影响实现的时间和效率,所以我们可以在docker云上面注册(https://account.daocloud.io/signin),使用加速器加速。
    此处我就不说了,我的上一篇博客记录有,参考网址:http://www.cnblogs.com/tianfen/p/6387220.html


    一.下载镜像
    docker pull sameersbn/gitlab:8.4.3
    docker pull sameersbn/postgresql:9.5
    docker pull sameersbn/redis

    mkdir -p /mnt/docker/{redis,data,log,postgresql} # docker镜像启动挂载卷 (此处存放自定义)
    chcon -Rt svirt_sandbox_file_t /mnt/docker/


    二、启动运行(gitlab最后启动)
    1.redis
    docker run --name gitlab-redis -d
    --volume /mnt/docker/redis:/var/lib/redis
    sameersbn/redis:latest

    2.postgresql
    docker run --name gitlab-postgresql -d
    --env 'DB_NAME=gitlabhq_production'
    --env 'DB_USER=gitlab' --env 'DB_PASS=password'
    --env 'DB_EXTENSION=pg_trgm'
    --volume /mnt/docker/postgresql:/var/lib/postgresql
    sameersbn/postgresql:9.5


    3.gitlab (每天凌晨自动备份)
    docker run --name gitlab -d
    --publish 22000:22 --publish 80:80
    --env 'GITLAB_PORT=80' --env 'GITLAB_SSH_PORT=22'
    --env 'GITLAB_HOST=ip/域名'
    --env 'GITLAB_ROOT_PASSWORD=password'
    --env 'GITLAB_SECRETS_DB_KEY_BASE=f5HHFKC329RVkdRlpbNffW8Nhh5JhgTZ84d6ZFMf5xL2vNXrjFk76N2hwGWmjhPS'
    --env 'GITLAB_SECRETS_SECRET_KEY_BASE=f5HHFKC329RVkdRlpbNffW8Nhh5JhgTZ84d6ZFMf5xL2vNXrjFk76N2hwGWmjhPS'
    --env 'GITLAB_SECRETS_OTP_KEY_BASE=f5HHFKC329RVkdRlpbNffW8Nhh5JhgTZ84d6ZFMf5xL2vNXrjFk76N2hwGWmjhPS'
    --link gitlab-postgresql:postgresql
    --link gitlab-redis:redisio
    --env=‘GITLAB_BACKUPS=daily‘ --env=‘GITLAB_BACKUP_TIME=00:00‘
    --volume /mnt/docker/data:/home/git/data
    sameersbn/gitlab:8.4.3


    上面的一长串字符串的话,可以安装pwgen生成
    yum install epel-release
    yum update
    yum install pwgen -y
    pwgen -Bsv1 64
    基本的安装启动已经完成。


    三、数据迁移
    sudo docker exec -it gitlab bash ---进入容器
    sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=production --一般情况,可以恢复成功

    如果报keys错误:执行下来这条命令,导入keys
    docker exec -it gitlab bash -c 'LC_ALL=en_US.UTF-8 sudo -HEu git bundle exec rake gitlab:shell:setup RAILS_ENV=production'

    常用命令:
    1.启动容器
    docker start 容器id/容器名
    例如:
    docker start gitlab-redis
    docker start gitlab-postgresql
    docker start gitlab

    2.查看当前启动的容器
    docker ps

    3.查看所有容器,包括已经停止的
    docker ps -a

    4.删除容器
    docker rm 容器id/容器名

    5.删除镜像
    docker rmi 镜像id/镜像名

    6.按照指定版本恢复的命令
    sudo docker exec -it gitlab bash
    sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=production BACKUP=1489421052 (BACKUP后指定版本)
    如果报keys错误:
    docker exec -it gitlab bash -c 'LC_ALL=en_US.UTF-8 sudo -HEu git bundle exec rake gitlab:shell:setup RAILS_ENV=production'


    7.手动备份gitlab数据
    sudo docker exec -it gitlab bash
    sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
    8.修改gitlab的root密码
    sudo docker exec -it gitlab bash ---进入容器
    bundle exec rails console production ---进入修改root密码的界面
    user = User.where(id: 1).first ---获取root用户的相关信息
    user.password = '密码' ---修改密码
    user.password_confirmation = '密码' ---确认密码
    user.save! ---保存

  • 相关阅读:
    用户行为分析
    数据挖掘
    酒店舆情分析
    特征工程·TFIDF提取特征
    mongo.conf 配置信息
    Phpstudy(小皮面板) nginx 解析漏洞
    mvnw 是什么
    java8 函数式接口Function和BiFunction
    ArrayList去除重复元素 利用 HashSet
    idea svn提交 忽略.imi 以及.idea文件夹
  • 原文地址:https://www.cnblogs.com/tianfen/p/6420220.html
Copyright © 2011-2022 走看看