【Gitlab】踩坑记录分享
前言
太菜了,gitlab docs 很全了,但是还是配了断断续续快一个月才配出完全体,网上也没有作业可抄
现在分享出来接受佬友们拷打,希望佬们多提提意见 ![]()
这个 gitlab 是内网的 pve 上的一个 lxc ,走 pve 上另一个 vm 的 Nginx Proxy Manager(以下简称「NPM」),通过 frp 转发到公网小鸡实现的。内网路由器端做了DNS反向代理。
部署了最新的gitlab-18.5.1-ee
文中的IP:
NPM :
192.168.1.66Gitlab WebUI + registry:
192.168.1.22Gitlab Pages:
192.168.1.33
也不知道应不应该发到IDC,想了想还是发在这里好
一些小记
配置文件在的/etc/gitlab/gitlab.rb下
改完记得执行
sudo gitlab-ctl reconfigure
升级 Docker 版 Gitlab
已经从docker容器迁移至单独的lxc容器了。你问我怎么升级?备份完之后直接
sudo apt update
sudo apt upgrade
0. 备份
# 备份仓库/帐户等 不包含配置文件!
# 这个命令会在容器的 /var/opt/gitlab/backups 目录下创建一个 tar 包
docker exec -t gitlab gitlab-backup create
# 进入容器或映射目录,备份配置文件及密钥
tar -czvf /etc/gitlab/gitlab-config-backup-$(date +%F).tar.gz /etc/gitlab
# 恢复
gitlab-backup restore
1. 查看升级路线图
举个例子,目前是17.10.4,准备升级到18.5.1
拉个镜像先~
docker pull gitlab/gitlab-ce:17.11.7-ce.0
docker pull gitlab/gitlab-ce:18.2.8-ce.0
docker pull gitlab/gitlab-ce:18.5.1-ce.0
1.1. 进入维护模式(非免费版)
2. 开干!
首先停止并移除旧容器:
docker compose down
修改原先compose的镜像版本至下一阶段的版本,随后
docker compose up -d
建议每成功一次就执行一次备份,随后重复此过程即可。
破解 Gitlab ee
有条件请支持正版喵!
有条件请支持正版喵!
有条件请支持正版喵!
穷鬼的粗鄙结论
对于个人使用下次安装gitlab可以一步到位:直接装ee版不用装ce版。
未激活的ee,功能会回退到ce,而ce升级ee需要迁移,ee破解也方便。
迁移请执行官方指南
破解教程请见参考文献,我用的方法1
基础配置
我这里的 gitlab webui 与 git 后端、registry 分开,走3个不同的域名,webui走小黄云,其他不走
OA 部分不谈也不想谈,因为这里的 appid 对应的是 github app 里的 client id ,我曾因为这个找了一天的问题 ![]()
external_url 'https://gitlab.****.***'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['trusted_proxies'] = ['192.168.1.66']
nginx['listen_port'] = 80
nginx['listen_https'] = false
letsencrypt['enable'] = false
NPM配置:代理服务https://gitlab.****.*** → http://192.168.1.22:80
配置 Pages
自用的可以把证明域名所有权的选项关掉,方便很多。
最终ruby部分(没说就是注释了):
pages_external_url "https://pages.****.***"
gitlab_pages['enable'] = true
##! Custom Domains 配置
##! 这个ip我是pve直接加了个网卡上去 需要与gitlab主ip不同
gitlab_pages['external_http'] = ['192.168.1.33:80']
##!内置的nginx也要换个监听ip
nginx['listen_addresses'] = ['192.168.1.22']
gitlab_pages['external_https'] = nil
gitlab_pages['propagate_correlation_id'] = true
gitlab_pages['log_verbose'] = false
gitlab_pages['redirect_http'] = false
# 502的解决方案
gitlab_pages['internal_gitlab_server'] = "http://localhost:8080"
pages_nginx['enable'] = false
NPM配置:代理服务https://*.pages.****.*** → http://192.168.1.33:80
配置 registry
闹麻了,在5005和5050端口调了半天,结果一看端口占用,5开头端口就一个127.0.0.1:5000
最后改成了下面的这份配置,把registry_http_addr从127.0.0.1:5000改到你的ip:5000,终于可以正常上传下载镜像了
最终ruby部分(没说就是注释了):
registry_external_url 'https://registry.****.***'
gitlab_rails['registry_enabled'] = true
# https://docs.gitlab.com/administration/packages/container_registry_metadata_database/
registry['database'] = {
'enabled' => true,
}
registry['registry_http_addr'] = "192.168.1.22:5000"
registry_nginx['enable'] = false
NPM配置:代理服务https://registry.****.*** → http://192.168.1.22:5000
给 git 拉库地址单独走一路
由于需要考虑到ssh拉库,所以nginx部分要注意,主机名是公网域名,但是实际连接主机时用的是转发的2424
我用的是NPM,所以只能做端口转发
gitlab_rails['gitlab_ssh_host'] = 'git.****.***'
gitlab_rails['gitlab_shell_ssh_port'] = 2424
NPM配置:端口转发2424 → 192.168.1.22:22