[[../容器相关/Docker/Docker]]安装
拉取gitlab镜像:
docker pull gitlab/gitlab-ce:lastest
# 创建目录
mkdir -p /data/gitlab/config /data/gitlab/logs /data/gitlab/data
##### 配置文件:/data/gitlab/config/gitlab.rb
# 启动容器:官方推荐最低配置2核4G,低于2核服务无法启动。我在这里限制了内存使用量,最高2G,swap也是2G,也就是理论上最高能使用4G内存,
docker run -d -p 81:80 -p 24822:22 -m 2g --memory-swap=2g --name gitlab -v /etc/localtime:/etc/localtime:ro -v /data/gitlab/config:/etc/gitlab -v /data/gitlab/logs:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
配置gitlab源 到/etc/yum.repos.d目录下新建gitlab-ce.repo文件,
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
安装gitlab
服务控制 启动 | 重启 | 停止
启动后CPU 内存占用过高的处理:默认会使用所有CPU核心,正常不需要这么多,可以适当调整 修改/etc/gitlab/gitlab.rb中的unicorn值,取消注释 unicorn[‘worker_processes’] = 2 适当修改CPU核心使用数量,最小值为2 官方文档
我用的是腾讯企业邮箱,注释部分请参考对应邮件系统设置 在/etc/gitlab/gitlab.rb中的smtp段增加如下内容
改完配置文件需要关闭服务执行reconfigure命令,然后再重启服务
可以通过以下命令测试是否配置成功
配置通过nginx代理访问 因为本身通过yum安装就会一并安装很多服务,而且会自带安装一个nginx服务。如果服务器本身还有其它服务,特别是80端口被占用的情况下,就需要对配置文件进行修改,尽量让外网不添加额外端口 继续修改/etc/gitlab/gitlab.rb配置文件,找到external_url 和nginx[‘listen_port’] =这两个配置,按如下进行设置
注:如果不想通过nginx再做一次代理,可以不修改nginx[‘listen_port’] = 这个配置,只修改external_url ‘’,例如 external_url 'http://gitlab.zizi.com.cn:5080' //端口号跟其它服务不冲突即可。这样访问就要加端口号 改完配置文件同样需要关闭服务执行reconfigure命令,然后再重启服务
在用来做外网访问的nginx服务上增如下配置,实现外网访问
修改 gitlab.rb
如果是以docker方式运行,将证书挂载到容器内即可
重新配置并重启服务
修改gitlab.rb配置文件,添加下面内容然后重启
使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份: 12.1以及之前的版本用以下命令备份
12.2以及之后的版本用以下命令备份
使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1519370071_2018_02_23_10.1.0_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分. Gitlab 修改备份文件默认目录 你也可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录:
/mnt/backups修改为你想存放备份的目录即可, 修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可
也可以通过crontab使用备份命令实现自动备份:
加入以下, 实现每天凌晨2点进行一次自动备份:
GitLab备份寿命管理
GitLab自带备份寿命管理,可以在gitlab.rb配置文件中通过如下配置实现:
或者通过定时任务来实现
同样, Gitlab的从备份恢复也非常简单: 停止相关数据连接服务
跟恢复操作差不多,先升级至最新版本,以防新服务器版本过高导致无法恢复。以下操作是基于docker方式部署的迁移操作
在升级完的容器服务器上执行如下命令,备份gitlab,会将备份放在gitlab/data/backups目录下
在新服务器上先创建一个新的容器,保证跟旧服务版本一至,将之前的备份文件放到gitlab/data/backups目录下,然后用
退出容器后后执行如下命令,恢复备份
迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话). 但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份.
修改git 远程仓库地址,如果迁移了gitlab,导致访问地址发生了改变,可以通过如下方法进行修改 1、用命令修改
2、直接修改config文件,修改仓库根目录下.git/config文件,将其中的地址修改为新地址即可
GitLab Docker版本备份脚本
gitlab docker版本自动备份并备份到阿里云OSS脚本
**需要有OSS资源 需要安装oss命令行工具,且有相应的访问权限,具体参考文档 https://help.aliyun.com/document_detail/50452.html?spm=5176.11065259.1996646101.searchclickresult.6ee48996ACufMd **
docker-compose 编排示例
Gitlab升级不能直接升级到最新版本,有一定的升级顺序,升级顺序可以参考官方文档Upgrading GitLab下的Upgrade paths
注意gitlab.rb配置文件中的以下三个要打开,且服务监听地址不能是localhost,这里我用的是非标准端口。