前言

上周去参与“中国数字经济创新发展大会”了,然后又忙新项目的事情,博客又有一段时间没有更新,今天周一事情比较少,立刻开始写文,最近有挺多值得记录的东西~

进入正文,最近我们搭了个Gitlab,并且把正在开发的项目代码都迁移到自建的Gitlab上,整个过程还是比较流畅的(就是有点费内存

PS:立即下单给这台服务器买了四条16G内存组四通道~

在此之前,我们团队一直使用Gitee企业版作为代码管理,不过随着网络安全和信息安全管控越来越严格,加之五月份新政策加紧了对国内开源项目的管控,我们还是决定将代码放到一个更加可控的平台上比较好。

在对比了Gitea和Gitlab之后,决定使用Gitlab搭建我们团队自己的代码管理系统。

开始

Gitlab有开源免费的社区版,功能够用,如果后续需要用更多功能还可以换企业版

所以为了方便后续升级,我们选择使用企业版镜像,未激活的情况下与社区版无异,需要升级的话只要购买它的订阅即可平滑升级到企业版。

关于部署方式,云原生时代当然使用Docker~

老规矩,用我最喜欢的compose编排镜像

找一个空间足够大的盘,创建gitlab目录,然后创建docker-compose.yml文件

配置内容如下

version: "3"
services:
gitlab:
image: gitlab/gitlab-ee:latest
restart: always
hostname: gitlab
ports:
- 1100:80
- 1101:443
- 1102:22
volumes:
- /etc/localtime:/etc/localtime
- ./config:/etc/gitlab
- ./logs:/var/log/gitlab
- ./data:/var/opt/gitlab

具体端口映射规则可以自己定义,volume映射也可以改,但记得第一个/etc/localtime是固定的,把本机的时间传给gitlab镜像。

保存完在目录下执行docker-compose up就能跑起来了

首次登录

Gitlab默认管理员用户是root

密码在/etc/gitlab/initial_root_password文件里

可以进入容器内部查看

优化内存使用

Gitlab吃内存真是名不虚传啊

我们使用的这个服务器是32G内存,在默认配置下一直吃满内存,甚至在使用过程中经常出现各种5xx错误,然后一看剩余内存就几百M……

果然是内存老虎啊~

然后就尝试各种配置,经过几天的摸索,终于把内存占用控制在16G左右

修改配置文件,在Gitlab容器中,这个文件的位置是/etc/gitlab/gitlab.rb

前面我们在docker compose中做了映射,也可以在本机目录下修改./config/gitlab.rb文件

puma['worker_timeout'] = 30
gitlab_rails['time_zone'] = 'Asia/Shanghai'
puma['worker_processes'] = 2
postgresql['shared_buffers'] = "256MB"
sidekiq['max_concurrency'] = 8
postgresql['max_worker_processes'] = 4
puma['per_worker_max_memory_mb'] = 600
prometheus_monitoring['enable'] = false
sidekiq['min_concurrency'] = 8

修改完要进入容器里执行以下命令之一(重新载入配置或重启gitlab),才能使修改生效

gitlab-ctl reconfigure
gitlab-ctl restart

clone地址

刚运行起来,clone地址是这样的,这不行啊,复制下来没法直接clone到本地,需要配置一下

HTTP的域名配置比较简单,进入menu->admin->settings->general->Visibility and access controls->Custom Git clone URL for HTTP(S)

填入gitlab的网址和端口号并点击保存即可生效

不过HTTP需要登录太麻烦了,我们一般用SSH

SSH地址好像没法在前台配置,需要修改配置文件

依然是前面说的那个配置文件,修改这俩行,分别配置IP地址和端口

gitlab_rails['gitlab_ssh_host'] = 'ssh.域名或IP地址'
gitlab_rails['gitlab_shell_ssh_port'] = 1102

重新载入配置就行了~

external_url配置

这个地址的配置涉及到好几个地方,比如发送的邮件里的跳转链接,代码片段编辑的跳转链接等~

还是在配置文件里修改

找到这一行,# external_url 'GENERATED_EXTERNAL_URL'

去掉前面的#注释,把URL改成Gitlab的内网地址http://ip:1100(之前把1100映射到了80端口)

需要注意一点就是Gitlab会根据这里URL的端口来决定提供web服务的端口

所以设置了这个URL的话,要同步修改docker-compose.yml里的端口映射配置

比如这里设置了1100,那么同步docker-compose.yml修改为

ports:
- 1100:1100

搞定~

参考资料

GitLab的安装、配置、使用的更多相关文章

  1. gitlab一键安装+配置(备份+LADP认证)

    gitlab一键安装+配置(备份+LADP认证) #gitlab一键安装 #centos6 mini, GitLab社区版 #参考官方最新文档 https://www.gitlab.com.cn/in ...

  2. gitlab centos 安装配置运维笔记

    写在前面 如果你需要一个git服务器,为企业或自己的团队托管代码而又不希望将代码仓库存储到第三方.你可以在自己的服务器上搭建一个gitlab. 本文为我在最初安装配置gitlab服务器的时候留存的笔记 ...

  3. linux gitlab nginx 安装 配置

    更新:bitnami-gitlab 7.8版本后界面发生变化 邮件问题: cd /data/server/gitlab/apps/gitlab/htdocs/config vim environmen ...

  4. gitlab的安装配置与简单使用

    安装 gitlab,建议系统内存 6G ,不然会报错. 一.如何安装 gitlab 下载 gitlab 的 RPM 包 https://packages.gitlab.com/gitlab/gitla ...

  5. docker下gitlab(redis)安装配置使用(完整版)

    ps:如果是云主机,需添加安全组开放相应端口(关联相应实例),防火墙开放端口或直接关闭 https://www.jianshu.com/p/080a962c35b6 将其中external_url换为 ...

  6. gitlab docker安装配置ldap

    镜像下载 直接从dockerhub 下载官方镜像即可 docker pull gitlab/gitlab-ce 首次运行 在某个位置创建一个文件夹并运行如下命令: docker run --hostn ...

  7. Centos7安装配置gitlab

    Centos7安装配置gitlab 这篇文字我会介绍在Centos7上安装gitlab,配置gitlab的smtp,并且创建项目demo. sudo yum install openssh-serve ...

  8. GitLab 安装配置笔记(转)

    GitLab的安装方式 GitLab的两种安装方法: 编译安装 优点:可定制性强.数据库既可以选择MySQL,也可以选择PostgreSQL;服务器既可以选择Apache,也可以选择Nginx. 缺点 ...

  9. DevOps之一 Gitlab的安装与配置

    gitlab的安装 参考治疗:https://www.gitlab.com.cn/installation/#centos-7 http://www.21yunwei.com/archives/435 ...

  10. docker安装配置gitlab详细过程

    docker安装配置gitlab详细过程   获取镜像 1.方法一 1 docker pull beginor/gitlab-ce:11.0.1-ce.0 2.方法二如果服务器网路不好或者pull不下 ...

随机推荐

  1. linux rz/sz 拖动文件上传

    不需要第三方上传文件直接 rz上传 拖动.以及 sz下载文件 多舒服 那么 他来了 安装与使用 yum安装 yum -y install lrzsz 使用上传文件,执行命令rz,会跳出文件选择窗口,选 ...

  2. Plant-Earth-wp

    Earth 信息收集 开放了80,443 只能访问到443,试了试msf里面frado的远古rce都不成功.然后注意到有域名解析 添加到hosts里面再访问,当前页面有几串密文,经尝试在message ...

  3. 如何在SAP GUI中快速执行新的事务代码

    当我们成功登录SAP的某个连接后,在SAP GUI起始页(SAP轻松访问),我们可以通过点击[收藏夹]或者在界面左上角的输入框输入对应的事务代码,直接进入对应事务的界面.但是下面列举的场景,你是否知道 ...

  4. 春眠不觉晓,Java数据类型知多少?基础牢不牢看完本文就有数了

    文编|JavaBuild 哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光吧,等工作之后,你就会发现,想学 ...

  5. root无法下载

    在 Linux 中,root 用户已经拥有系统中的最高权限.然而,如果你需要确保 root 用户具有所有权限,可以通过以下步骤来进行:(这是不对的) sudo chown -R root:root / ...

  6. 神经网络基础篇:向量化(Vectorization)

    向量化 向量化是非常基础的去除代码中for循环的艺术,在深度学习安全领域.深度学习实践中,会经常发现自己训练大数据集,因为深度学习算法处理大数据集效果很棒,所以的代码运行速度非常重要,否则如果在大数据 ...

  7. 详解GaussDB(DWS)通信安全的小妙招:连接认证机制

    本文分享自华为云社区<GaussDB(DWS)数据库安全系列之通信安全>,作者:yd_262982826. 1. 前言 适用版本:[8.1.3及以上] 网络是一个开放的环境,仅仅依靠用户名 ...

  8. Python图像处理丨如何调用OpenCV绘制直方图

    摘要:本篇文章主要讲解灰度直方图的基本概念,Python调用OpenCV实现绘制图像直方图. 本文分享自华为云社区<[Python图像处理] 十一.灰度直方图概念及OpenCV绘制直方图> ...

  9. Vuex在TSX中的改造方案:TS改造Vue2项目Vuex如何处置?

    vuex目前比较流行的有:vuex-aggregate . vuex-class.vuex-module-decorators npm搜到相关的,看下趋势图:https://www.npmtrends ...

  10. JS 判断域名并跳转到指定页面

    判断访问指定域名,进行页面跳转 <!DOCTYPE html> <html> <head> <title>正在玩命加载中--</title> ...