gitlab
- 公司由svn转到git上,需要搭建git版本控制服务器,gitlab自然是首选,我们使用docker进行安装,方便日后的迁移,部署
部署
- 拉取gitlab镜像
- 我们使用gitlab的汉化版镜像(twang2218/gitlab-ce-zh),目前版本是11.1.4
- 运行镜像
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
- 使用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
- 使用上述命令启动宿主服务器
- 进去宿主服务器容器
- 执行命令
- 修改备份文件权限
chmod 777 1569482945_2019_09_26_11.1.4_gitlab_backup.tar
- 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
- 恢复备份文件(需要输入两次yes)
gitlab-rake gitlab:backup:restore BACKUP=1569482945_2019_09_26_11.1.4
- 重新启动gitlab
service gitlab-ctl start