Docker之gitlab的部署、备份、迁移

gitlab

  • 公司由svn转到git上,需要搭建git版本控制服务器,gitlab自然是首选,我们使用docker进行安装,方便日后的迁移,部署
部署
  1. 拉取gitlab镜像
  • 我们使用gitlab的汉化版镜像(twang2218/gitlab-ce-zh),目前版本是11.1.4
  1. 运行镜像
docker run --detach \
--hostname gitlab.example.com \ 
--publish 443:443 --publish 80:80 
--publish 22:22 \ --name gitlab \ 
--restart always \ 
--volume /srv/gitlab/config:/etc/gitlab \ 
--volume /srv/gitlab/logs:/var/log/gitlab \ 
--volume /srv/gitlab/data:/var/opt/gitlab \ 
gitlab/gitlab-ce:latest
  • -detach 保持镜像在后台运行
  • -hostname 访问地址(拉取git的地址)
  • -publish ssl默认端口(443) 80(http) 22(ssh)
  • -name 名称
  • volume 挂载gitlab目录
注意事项:
  • 尽量使用默认的端口进行部署,这样拉取git的时候不会带有端口号,ssh本地默认端口是22,可以进行修改,这样也可以保证宿主机安全的问题 ,修改默认ssh默认端口号:修改文件:/etc/ssh/sshd_config,添加端口号:
Port 2232 //修改端口号

重新启动ssh

service ssh restart
  • 如果默认端口被占用就需要修改配置文件,进行端口的指定:
/srv/gitlab/config/gitlab.rb:
## 访问地址
external_url 'http://10.1.1.1:8066'
## 主机名称
gitlab_rails['gitlab_ssh_host'] = '10.1.1.1:'
## ssh端口
gitlab_rails['gitlab_shell_ssh_port'] = 8032
  • 这里需要着重注意的是如果配置文件,那么gitlab默认映射也将改变,需要更改成-publish 8032:8032 -publish 8066:8066
  1. 使用docker-compose运行镜像(建议使用方式
version: '2'
services:
    gitlab:
      container_name: gitlab
      image: 'twang2218/gitlab-ce-zh:11.1.4'
      restart: always
      hostname: '10.1.1.1'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://10.1.1.1'
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
          gitlab_rails['gitlab_ssh_host'] = '10.1.1.1'
      ports:
        - '80:80'
        - '443:443'
        - '22:22'
      volumes:
        - /home/docker/gitlab/etc:/etc/gitlab
        - /home/docker/gitlab/data:/var/opt/gitlab
        - /home/docker/gitlab/logs:/var/log/gitlab
备份
  • 进入实例容器,执行gitlab-rake gitlab:backup:create,备份文件在/var/opt/gitlab/backups,对应挂载在宿主机的目录,下存在类似于1569482945_2019_09_26_11.1.4_gitlab_backup.tar的文件,表示备份成功
  • 在备份的过程中出现一个小插曲,备份出现报错,提示硬盘空间不足,需要预留出来将近3个g的空间
  • 修改默认的备份目录(/etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
  • 修改完成后执行gitlab-ctl reconfigure
迁移
  • 传送备份文件到指定文件夹下
scp  1569482945_2019_09_26_11.1.4_gitlab_backup.tar root@10.1.1.2:/home/app/gitlab/data/backup
  • 传送原服务器config文件到服务器指定文件夹下
scp -r etc root@10.1.1.2:/home/app/gitlab/data/backup
  • 使用上述命令启动宿主服务器
  • 进去宿主服务器容器
  • 执行命令
  1. 修改备份文件权限
chmod 777 1569482945_2019_09_26_11.1.4_gitlab_backup.tar 
  1. 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
  1. 恢复备份文件(需要输入两次yes)
gitlab-rake gitlab:backup:restore BACKUP=1569482945_2019_09_26_11.1.4
  1. 重新启动gitlab
service gitlab-ctl start
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值