1、Gitlab介绍
GitLab 是一个用于代码仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务平台,
通过该平台可以实现Github类似的web系统,可以实现浏览代码、管理项目、管理团队人员、管理代码分支、代码提交记录等功能。Gitlab是目前互联网公司最流行的代码版本控制平台。
2、gitlab与github对比
gitlab:比较适合公司内部的项目管理,用来管理项目成员、代码提交、项目运维。分为社区免费版和企业收费版,针对中小型公司推荐使用社区免费版,功能就够用了。
github:作为“最大的同性交友网站”,里面的大部分项目都是开源的,通过全世界最大的程序员交流平台,可以分享自己的技术、提升自己的知名度。作为公司的内部项目管理就不太适合了。
3、Gitlab安装教程
安装GitLab官方推荐至少4G的内存【我是8G才跑起来】,否则可能会卡顿或者运行非常慢,建议小伙伴们采用4G以上的云服务进行测试,或者本地搭建虚拟机的方式来做。
3.1 搜索Gitlab镜像
docker search gitlab
3.2 下载Gitlab社区免费版最新镜像
说明:ce 表示社区免费版 ,ee 表示企业付费版
docker pull gitlab/gitlab-ce
3.3 查看镜像是否下载成功
#获取本地镜像列表查看是否有gitlab-ce的镜像
docker images
3.4 运行Gitlab镜像
docker run -d \
--hostname gitlab.xxx.com \
--name gitlab \
--restart always \
-p 8082:443 -p 8083:80 -p 8084:22 \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/local/gitlab_data/gitlab/config:/etc/gitlab \
-v /usr/local/gitlab_data/gitlab/logs:/var/log/gitlab \
-v /usr/local/gitlab_data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
参数说明
-
-d 指定后台运行
-
--hostname 指定主机名
-
--name 指定容器名
-
-p 端口映射 443 https端口 80 http端口 22 ssh端口
-
--restart always 容器停止后的重启策略: 容器退出时总是重启
-
-v 指定挂载存储卷首先在宿主主机创建对应的目录
3.5 配置防火墙开放云服务器的端口
如果你购买的是云服务器的话,需要设置外网端口开放。常见的阿里云、华为云、腾讯云都可以很方便设置端口开放,大家可以自行百度。
防火墙的设置命令如下:
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #开启防火墙
systemctl stop firewalld #关闭防火墙
firewall-cmd --list-ports #查看开放端口
#设置8082-8084端口开放
firewall-cmd --zone=public --add-port=8082-8084/tcp --permanent
firewall-cmd --list-ports #再次查看是否开放
3.6 测试能否正常访问
设置完成后,通过ip+端口进行访问。
3.7 配置https访问
nginx配置ssl可以参考我之前的一篇文章介绍dockers安装nginx配置ssl的教程。
3.8 认账户名是root,密码存放在配置文件
gitlab-ce初装以后,把密码放在了一个临时文件里面了。这个文件将在首次执行reconfigure后24小时自动删除,文件内容。
initial_root_password
将Password内容复制去登录界面即可
4、gitlab太占内存,降低gitlab内存占用的配置优化
要减少gitLab的内存占用,需要修改其配置文件,以上面的配置启动后,gitlab的配置文件 gitlab.rb就在目录/opt/gitlab13.3/config 中。然后我们就可以开始编辑这个配置文件。进行以下修改:
1.减少数据库缓存
postgresql['shared_buffers'] = "64MB"
2.减少数据库并发数
postgresql['max_worker_processes'] = 1
3.减少sidekiq并发数
sidekiq['concurrency'] = 1
4.减少进程数
unicorn['worker_processes'] = 1
nginx['worker_processes'] = 2
5.减少超时时间
unicorn['worker_timeout'] = 10
6.减少数据库缓存
postgresql['shared_buffers'] = "64MB"
7.将worker内存上限设置小一点
unicorn['worker_memory_limit_min'] = "100 * 1 << 20"
unicorn['worker_memory_limit_max'] = "220 * 1 << 20"
8.禁用prometheus
prometheus_monitoring['enable'] = false
9.关闭一些监控和性能基准相关的功能
prometheus['enable'] = false
prometheus_monitoring['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
pgbouncer_exporter['enable'] = false
gitlab_exporter['enable'] = false
grafana['enable'] = false
sidekiq['metrics_enabled'] = false
5、端口配置
我这里直接用ip+端口了,修改配置如下,这样仓库地址就带上端口了。
external_url 'http://43.136.xxx.xxx:8080'
容器内Nginx还是默认80访问
nginx['listen_port'] = 80
6、总结
以上就是docker安装gitlab的教程,如果大家安装过程种遇到问题,欢迎留言沟通!