大家好,我是冰河~~
最近一段时间,总有星球小伙伴向我反馈说自己授权过的代码莫名其妙访问不到了,拉取代码提示500错误等。收到这些反馈时,我也是很无奈,只能引导小伙伴们一次次重试,或者我也会协助找客服处理。
又一个可直接应用于生产环境的监控组件项目完结并上线,点击链接:https://t.zsxq.com/LjMTj 快速学习,并可直接应用于你的生产环境项目。
因为星球的代码是托管到gitcode.net的,也就是托管到三方了,出了问题,咱除了引导小伙伴重试和找客服以及技术支持外,确实也别无他法。
随着反馈gitcode问题的小伙伴越来越多,我也在默默开始调研其他的代码托管平台,包括:GitHub、Gitee、BitBucket、SourceForge等等。这些代码托管平台虽然非常成熟,但是都不太符合对项目和成员的周期性管理需求。
既然这些成熟的代码托管平台都不太符合对项目和成员的周期性管理需求,再加上gitcode目前又不能创建新的项目和组织了。
那何不自己搭建一个gitlab来管理项目和成员呢?说干就干,于是,周末花了3个小时左右的时间,自己搭建了gitlab并对整体功能进行测试,总体来说,自己搭建的gitlab还是比较符合预期需求的。
况且,自己搭建gitlab后,小伙伴们如果后续遇到啥问题,我也可以迅速撸起袖子为大家快速处理问题,也不必无奈的等gitcode处理了。总之,自己搭建gitlab后,咱的腰杆子也比之前更硬了。
后续项目的一些代码我都会提交到自己搭建的gitlab平台上,小伙伴们可以到我的gitlab地址注册账号来授权代码访问。今天,我就将搭建gitlab的步骤分享给大家。
注意:我是在CentOS7服务器上安装并配置的GitLab,如果在其他服务器上安装并配置GitLab,可能会略有不同。
命令行输入如下命令:
vim /etc/yum.repos.d/gitlab_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
随后执行如下两条命令:
yum install gitlab-ce
#配置并启动 GitLab
gitlab-ctl reconfigure
gitlab常用命令如下:
启动 : gitlab-ctl start
停止 : gitlab-ctl stop
重启 : gitlab-ctl restart
查看服务状态 : gitlab-ctl status
停止gitlab
gitlab-ctl stop
输入如下命令修改gitlab配置文件
vim /etc/gitlab/gitlab.rb
找到 git_data_dirs里面的path 换成共享文件自己想要配置的目录。
git_data_dirs({
"default" => {
"path" => "/home/gitlab/code"
}
})
将旧的gitlab数据迁移到新目录 (使用 rsync 命令)
rsync -av /var/opt/gitlab/git-data/repositories /mnt/hgfs/project
重新加载配置
gitlab-ctl repositories
启动gitlab,等待几分钟
gitlab-ctl start
(1)修改修改 gitlab-http.conf
命令行输入如下:
/var/opt/gitlab/nginx/conf/gitlab-http.conf
修改server的配置,修改后的配置如下所示。
server { ## HTTPS server
listen *:10000;
server_name 10.3.3.21;
server_tokens off; ## Don't show the nginx version number, a security best practice
## Increase this if you want to upload large attachments
## Or if you want to accept large git objects over http
client_max_body_size 0;
(2)修改gitlab.rb
命令行输入如下命令。
vim /etc/gitlab/gitlab.rb
在gitlab.rb中找到nginx['listen_port']并修改成如下所示。
nginx['listen_port'] = 10000
找到如下代码。
external_url 'http://gitlab.example.com'
修改成如下代码。
external_url 'http://10.3.3.21'
(3)修改gitlab.yml配置
命令行输入如下命令。
vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
修改后的配置如下所示。
production: &base
#
# 1. GitLab app settings
# ==========================
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 10.3.3.21
port: 10000
https: false
(4)重新加载配置
gitlab-ctl reconfigure
随后按照如下命令启动、停止、重启和查看gitlab服务状态即可。
启动 : gitlab-ctl start
停止 : gitlab-ctl stop
重启 : gitlab-ctl restart
查看服务状态 : gitlab-ctl status
(5)配置外部nginx访问gitlab
在命令行输入如下命令
vim /etc/gitlab/gitlab.rb
将external_url修改成如下所示。
external_url 'http://10.3.3.21/coding'
随后执行如下命令重新加载gitlab配置并重启gitlab。
gitlab-ctl reconfigure
gitlab-ctl restart
随后配置外部Nginx,在nginx.conf配置文件的http下添加如下配置。
upstream gitlab
{
server 10.3.3.21:10000 weight=1 max_fails=2 fail_timeout=60s;
}
随后在nginx.conf的server下添加如下配置。
server
{
listen 80;
server_name 你的域名;
location /coding
{
client_max_body_size 1024m;
proxy_pass http://gitlab;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
随后在浏览器输入 http://你的域名/coding 即可打开gitlab页面。
冰河自行搭建的gitlab地址已经发布到星球,小伙伴们可以点击链接自行注册gitlab账号,随后冰河会为大家开通项目代码访问权限。
在冰河的知识星球除了目前正在热更的高性能网关外,还有其他8个项目,像高性能熔断组件、通用指标上报组件、分布式IM即时通讯系统、Sekill分布式秒杀系统、手写RPC、简易商城系统等等,这些项目的需求、方案、架构、落地等均来自互联网真实业务场景,让你真正学到互联网大厂的业务与技术落地方案,并将其有效转化为自己的知识储备。