美文网首页
gitlab从apt-get转docker

gitlab从apt-get转docker

作者: 童王霖Steven | 来源:发表于2017-03-30 14:30 被阅读0次

    原来公司的gitlab是通过apt-get安装的,本身gitlab依赖的服务也特别多,所以想要将目前的gitlab转入docker部署。

    gitlab的数据还是比较重要的,所以还是得先备份。我是用了阿里云自带的快照把整个磁盘都备份了一下。

    PS:目前还没有在正式环境上做这件事,下面所有事情是本地测试的。

    备份还原必须是在同一个版本下操作的,目前线上最新的备份版本是gitlab-ce:9.0.1的,所以我先要起一个9.0.1版本的gitlab镜像。

    所有版本镜像都可以看这里

    我采用的是docker-compose的方式进行部署。官方文档可以看这里

    我的docker-compose.yml如下:

    gitlab:
      image: 'gitlab/gitlab-ce:9.0.1-ce.0'
      restart: always
      hostname: 'localhost'
      environment:
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://localhost'
      ports:
        - '8080:80'
        - '443:443'
        - '22:22'
      volumes:
    #   - '/srv/gitlab/config:/etc/gitlab'
    #   - '/srv/gitlab/logs:/var/log/gitlab'
    #   - '/srv/gitlab/data:/var/opt/gitlab'
        - '/Users/Steven/Desktop/gitlab/config:/etc/gitlab'
        - '/Users/Steven/Desktop/gitlab/logs:/var/log/gitlab'
        - '/Users/Steven/Desktop/gitlab/data:/var/opt/gitlab'
    

    一切就绪,使用docker-compose up -d启动docker。我是用docker-compose up启用的,便于查看输出。

    这时候打开http://localhost:8080就能看到默认的gitlab网页了。

    屏幕快照 2017-03-30 14.57.15.png

    我用scp命令下载好了服务器上的备份1490846041_2017_03_30_gitlab_backup.tar,这些备份都是在升级gitlab版本的时候自动备份的,目录在/var/opt/gitlab/backups/,我没有打开自动备份,因为阿里云开了每日自动快照。

    下面要做的就是恢复这些数据了。我参考了(这里)[https://gitlab.com/gitlab-org/gitlab-ce/issues/2693]的命令,但是某两条命令好像有一点问题,我稍微改了一下。

    # 先把备份的文件拷贝到docker里面,也可以直接拷贝到mapping的volumn指定位置。
    docker cp /path/to/file/1490846041_2017_03_30_gitlab_backup.tar docker-container-id:/var/opt/gitlab/backups
    # 进入docker
    docker exec -it docker-container-id bash
    # 设置文件夹权限
    chmod -R 775 /var/opt/gitlab/backups
    # 停止两个服务,而不是所有服务
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    # 从备份中恢复
    gitlab-rake gitlab:backup:restore BACKUP=1490846041_2017_03_30
    # 修改文件夹所有者
    chown -R git /var/opt/gitlab/gitlab-rails/uploads
    # OK了,接下来是收尾
    gitlab-ctl reconfigure
    gitlab-ctl start
    

    接下来刷新http://localhost:8080就可以发现,原来gitlab上面的用户信息,配置等等都恢复了。当然,除了代码。

    屏幕快照 2017-03-30 14.58.03.png

    接下来我我还没做的事情是恢复代码。我想应该只需要把/var/opt/gitlab/*目录拷贝一份到/Users/Steven/Desktop/gitlab/data/*应该就没啥问题了。鉴于代码文件比较大,目前我还没把这个文件夹拉取到本地测试,当然我后面会去验证我的想法。

    总之大致上是实现了我们的需求了。

    相关文章

      网友评论

          本文标题:gitlab从apt-get转docker

          本文链接:https://www.haomeiwen.com/subject/dvauottx.html