GitLab在CentOS上的使用技巧
sudo yum install -y curl policycoreutils-python openssh-server postfix,覆盖SSH服务、邮件发送(Postfix)等依赖。curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash。sudo yum install -y gitlab-ce。/etc/gitlab/gitlab.rb设置external_url(如http://your_server_ip),执行sudo gitlab-ctl reconfigure应用配置,再通过sudo gitlab-ctl start启动服务。my-project),选择.gitignore模板(如Python、Java)和许可证(如MIT),完成项目创建。ssh-keygen -t rsa -C "your_email@example.com"生成密钥对,将公钥(cat ~/.ssh/id_rsa.pub)复制到GitLab用户设置的“SSH Keys”中,实现免密推送/拉取代码。main/master分支,通过git checkout -b feature/login创建特性分支,开发完成后发起Pull Request,通过代码审查后合并到主分支,保障主分支稳定性。git clone http://your_server_ip/my-project.git克隆项目;git add .添加修改;git commit -m "fix: resolve login bug"提交代码(描述需清晰);git push origin feature/login推送分支,简化日常代码管理。sudo sysctl -w net.ipv4.tcp_tw_reuse=1(复用TIME-WAIT连接)、net.ipv4.tcp_max_syn_backlog=8192(增加SYN队列长度)、net.core.somaxconn=65535(提升监听端口队列大小),并通过sysctl -p使配置生效。/etc/gitlab/gitlab.rb,调整Unicorn worker数量(unicorn['worker_processes'] = 4,根据CPU核心数设置);启用HTTP/2(nginx['enable'] = true、nginx['ssl_protocols'] = "TLSv1.2 TLSv1.3")提升传输效率;开启Keep-Alive(nginx['keepalive_timeout'] = 65)减少连接建立开销。git lfs install),通过git lfs track "*.psd"指定跟踪类型,执行git add .gitattributes提交配置,避免大文件拖慢仓库速度。/etc/gitlab/gitlab.rb:nginx['ssl_certificate'] = "/etc/letsencrypt/live/your_domain/fullchain.pem"、nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/your_domain/privkey.pem",执行sudo gitlab-ctl reconfigure重启服务,强制使用HTTPS访问。sudo firewall-cmd --permanent --add-port=22/tcp、sudo firewall-cmd --permanent --add-port=80/tcp、sudo firewall-cmd --permanent --add-port=443/tcp,然后sudo firewall-cmd --reload应用规则,阻止非法访问。.gitlab-ci.yml,定义流水线阶段(stages)和作业(jobs)。例如,测试阶段执行npm test,部署阶段推送镜像到Docker Hub:stages:
- test
- deploy
test_job:
stage: test
script:
- npm install
- npm test
deploy_job:
stage: deploy
script:
- docker build -t your_dockerhub_username/my-app:$CI_COMMIT_SHORT_SHA .
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
- docker push your_dockerhub_username/my-app:$CI_COMMIT_SHORT_SHA
保存后,GitLab会自动触发流水线,实时查看执行状态。sudo yum install -y gitlab-runner安装;注册Runner(sudo gitlab-runner register),输入GitLab实例URL、注册令牌(在项目“Settings”→“CI/CD”→“Runners”中获取)、执行器类型(推荐docker),配置完成后,Runner会自动监听流水线任务并执行。sudo gitlab-rake gitlab:backup:create,默认备份路径为/var/opt/gitlab/backups,备份文件包含数据库、仓库、附件等所有数据。sudo gitlab-ctl stop unicorn、sudo gitlab-ctl stop sidekiq),执行sudo gitlab-rake gitlab:backup:restore BACKUP=2025-09-26-120000(替换为备份文件名),恢复完成后启动服务(sudo gitlab-ctl start)。/etc/crontab,添加0 2 * * * root /usr/bin/gitlab-rake gitlab:backup:create CRON=1,表示每天凌晨2点执行备份,并将输出发送到指定邮箱(如root@example.com)。