news 2026/4/30 14:37:22

自建 GitLab CE:把代码仓库搬到自己的服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自建 GitLab CE:把代码仓库搬到自己的服务器

自建 GitLab CE:把代码仓库搬到自己的服务器

用 GitHub 存代码很方便,但有些情况会让人想自建:公司代码不想放公有云、私有仓库数量有限、想自己掌控 CI/CD 流程。GitLab Community Edition 是完整的开源 DevOps 平台,代码托管、Issue 管理、CI/CD Pipeline、Container Registry 全部打包,功能不比 GitHub 少多少。

缺点也很明显:资源消耗大,至少要 4GB 内存才跑得比较顺畅。

服务器配置

GitLab 是我见过的最吃内存的 Web 应用之一:

用途CPU内存硬盘
1–5 人小团队2 核4G50GB
5–20 人团队4 核8G100GB

我在雨云用 4 核 8G 的机器跑 GitLab,几个人的开发团队日常使用没问题。雨云按月付费,价格比同配置的大厂便宜不少。新用户注册填优惠码2026off能领 5 折优惠券。

用 Docker 部署 GitLab

Docker 方式比直接装包更容易升级和迁移:

mkdir-p/opt/gitlabcat>/opt/gitlab/docker-compose.yml<<'EOF' version: "3.8" services: gitlab: image: gitlab/gitlab-ce:latest container_name: gitlab hostname: git.你的域名.com environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://git.你的域名.com' gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 禁用 Prometheus 等监控组件以节省内存 prometheus_monitoring['enable'] = false grafana['enable'] = false alertmanager['enable'] = false node_exporter['enable'] = false redis_exporter['enable'] = false postgres_exporter['enable'] = false # 调小 Puma worker 数 puma['worker_processes'] = 2 # SMTP 邮件 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qq.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "你的邮箱@qq.com" gitlab_rails['smtp_password'] = "邮箱授权码" gitlab_rails['smtp_domain'] = "qq.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['gitlab_email_from'] = '你的邮箱@qq.com' ports: - "80:80" - "443:443" - "2222:22" volumes: - ./gitlab_config:/etc/gitlab - ./gitlab_logs:/var/log/gitlab - ./gitlab_data:/var/opt/gitlab shm_size: '256m' restart: unless-stopped EOFdockercompose up-d

第一次启动需要 3–5 分钟,GitLab 要初始化数据库和配置。

# 查看启动状态dockerlogs-fgitlab# 等待出现 "gitlab Reconfigured!" 表示启动完成

获取初始 root 密码

dockerexecgitlabgrep'Password:'/etc/gitlab/initial_root_password

这个文件在 24 小时后会自动删除,记得及时改密码。

配置 HTTPS

上面的配置里external_url已经配置了https://,GitLab 内置 Let’s Encrypt 自动申请证书。

确保 DNS 解析正确指向服务器,并在云控制台放行TCP 80TCP 443(GitLab 需要 80 来验证域名)。

如果你想用已有证书(比如通配符证书),可以在GITLAB_OMNIBUS_CONFIG里指定:

nginx['ssl_certificate'] = "/etc/gitlab/ssl/cert.pem" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/key.pem" letsencrypt['enable'] = false

SSH 推送代码

GitLab 的 SSH 端口映射到了主机的2222,需要在本地~/.ssh/config里配置:

cat>>~/.ssh/config<<'EOF' Host git.你的域名.com Port 2222 IdentityFile ~/.ssh/id_ed25519 EOF

在 GitLab 个人设置 → SSH Keys 里添加公钥后就可以 push/pull 了。

启用 GitLab CI/CD

GitLab CI/CD 需要安装 Runner 来执行 Pipeline。在同一台服务器上安装 Runner:

# 安装 gitlab-runnercurl-Lhttps://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh|sudobashsudoaptinstall-ygitlab-runner# 注册 Runnersudogitlab-runner register\--url"https://git.你的域名.com"\--registration-token"从 GitLab 项目设置里找到的 token"\--executor"docker"\--docker-image"alpine:latest"\--description"my-runner"

注册完成后,在.gitlab-ci.yml里定义 Pipeline,提交代码就会自动触发 CI。

常用管理操作

# 重新配置(修改配置后运行)dockerexecgitlab gitlab-ctl reconfigure# 重启服务dockerexecgitlab gitlab-ctl restart# 备份dockerexecgitlab gitlab-backup create# 查看备份文件ls/opt/gitlab/gitlab_data/backups/

备份策略

GitLab 备份会打包代码仓库、数据库、Wiki、附件等:

# 手动备份dockerexecgitlab gitlab-backup create# 加入 cron 自动备份(每天凌晨 2 点)echo"0 2 * * * docker exec gitlab gitlab-backup create"|crontab-

备份文件存在/opt/gitlab/gitlab_data/backups/,记得同步到其他位置。

内存优化

如果内存吃得太狠,可以进一步调整:

# 在 GITLAB_OMNIBUS_CONFIG 里添加 puma['worker_processes'] = 1 # 最小 worker 数 sidekiq['concurrency'] = 5 # 减少 Sidekiq 并发 gitlab_workhorse['workhorse_keywatcher'] = false

调整后重新配置:docker exec gitlab gitlab-ctl reconfigure


GitLab CE 自建的主要优势是完全掌控:代码在自己机器上,CI/CD 免费无限制,可以按需扩展 Runner。对于看重数据主权或者 CI 用量大的团队来说,一次部署的成本回本很快。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 14:36:07

前端性能优化:浏览器缓存策略详解

前端性能优化&#xff1a;浏览器缓存策略详解 为什么浏览器缓存如此重要&#xff1f; 在现代Web开发中&#xff0c;性能优化是一个永恒的话题。而浏览器缓存&#xff0c;作为前端性能优化的重要手段之一&#xff0c;却常常被开发者忽视。合理的缓存策略可以显著减少网络请求&am…

作者头像 李华
网站建设 2026/4/30 14:33:55

如何用kill-doc浏览器脚本一键下载30+平台文档:免费获取百度文库、道客巴巴、豆丁网等资源

如何用kill-doc浏览器脚本一键下载30平台文档&#xff1a;免费获取百度文库、道客巴巴、豆丁网等资源 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下…

作者头像 李华
网站建设 2026/4/30 14:27:21

穿越唐诗大世界 100 节 课程

正文&#xff1a;本文为家庭学习整理资料&#xff0c;仅供个人学习使用&#xff0c;侵删。 资源名称&#xff1a;穿越唐诗大世界 100 节 课程 适合年龄&#xff1a;5–12 岁 内容简介&#xff1a;趣味唐诗课程&#xff0c;带孩子深入理解唐诗背景与意境。 学习资料获取方式…

作者头像 李华