当前位置: 首页 > news >正文

DevOps历程--GitLab安装与使用教程(Docker安装和编译安装两种方式)

1.简介

Gitlab是一个开源的Git代码仓库系统,可以实现自托管的Github项目,即用于构建私有的代码托管平台和项目管理系统。系统基于Ruby on Rails开发,速度快、安全稳定。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
在这里插入图片描述

2. Docker安装GitLab

我们这里安装的是中文社区版的GitLab,官方版本的镜像哪怕安装中文插件汉化也不完全,当然如果你英语特别好的话也可以直接使用官方的镜像

2.1 执行安装

2.1.1创建数据配置存放目录
sudo mkdir -p /mydata/gitlab/etc
sudo mkdir -p /mydata/gitlab/log
sudo mkdir -p /mydata/gitlab/data
sudo mkdir -p /mydata/gitlab/confchmod -R 777 /mydata/gitlab/
2.1.2拉取docker镜像
docker pull beginor/gitlab-ce:11.1.4-ce.0

2.1.3执行安装
docker run -m 2048m --memory-swap 2048m \--restart always \--privileged=true \--detach \--publish 8443:443 \--publish  8222:22 \--publish 8087:80 \--name gitlab \--volume /mydata/gitlab/etc:/etc/gitlab \--volume /mydata/gitlab/log:/var/log/gitlab \--volume /mydata/gitlab/data:/var/opt/gitlab \beginor/gitlab-ce:11.1.4-ce.0
2.1.4参数解释

📋 参数解释表

参数说明作用详解
docker run启动一个新的容器这是 Docker 最基本的命令之一,用于从指定镜像创建并运行一个容器
-m 2048m--memory=2048m设置容器使用的最大内存限制容器最多使用 2048MB(2GB)内存
--memory-swap 2048m设置容器可用的总内存(内存 + swap)总内存为 2048MB,表示不允许使用交换分区(swap)
如果设置为 -1,表示允许无限使用 swap
--restart always设置容器的重启策略表示无论退出状态码是什么,容器总是重启
即使宿主机重启,也会自动启动该容器
--privileged=true给容器超级权限允许容器访问宿主机的所有设备,拥有接近 root 权限
适用于需要操作硬件或内核的场景,但存在安全风险
--detach-d后台运行容器容器在后台运行,不占用当前终端窗口
--publish 8443:443-p 8443:443映射端口将宿主机的 8443 端口映射到容器的 443 端口(GitLab HTTPS)
--publish 8222:22-p 8222:22映射端口将宿主机的 8222 端口映射到容器的 22 端口(GitLab SSH)
--publish 8087:80-p 8087:80映射端口将宿主机的 8087 端口映射到容器的 80 端口(GitLab HTTP)
--name gitlab为容器命名给这个容器命名为 gitlab,便于后续管理(如 docker stop gitlab
--volume /mydata/gitlab/etc:/etc/gitlab-v /mydata/gitlab/etc:/etc/gitlab挂载卷将宿主机的 /mydata/gitlab/etc 目录挂载到容器的 /etc/gitlab,用于保存 GitLab 的配置文件
--volume /mydata/gitlab/log:/var/log/gitlab挂载卷挂载日志目录,持久化容器日志
--volume /mydata/gitlab/data:/var/opt/gitlab挂载卷挂载数据目录,持久化 GitLab 的项目、用户、设置等数据
beginor/gitlab-ce:11.1.4-ce.0镜像名称使用的 Docker 镜像名,beginor/gitlab-ce 是 GitLab 社区版镜像,标签 11.1.4-ce.0 表示版本

2.2 修改配置

  • 修改gitlab.rb文件配置

进入dcoker容器修改gitlab.rb文件配置,搜索并调整下面参数(双斜杠“//”是注释,是不需要放进去的,此外要把前面#号注释打开)

#进入容器
docker exec -it gitlab /bin/bash#找到配置文件
vim /etc/gitlab/gitlab.rb

这些参数不强制修改,看你机器的性能,gitlab特别占内存,我这里机器内存只有32G还运行了一堆中间件就改的比较小

#vim搜索,在普通模式下输入 /要搜索文本
/worker_processes#修改cpu核数
unicorn['worker_processes'] = 2   #vim搜索,在普通模式下输入 /要搜索文本
/shared_buffers#减少postgres数据库缓存
postgresql['shared_buffers'] = "256MB"        #vim搜索,在普通模式下输入 /要搜索文本
/max_worker_processes #最大数据库连接数
postgresql["max_worker_processes "]=5     #vim搜索,在普通模式下输入 /要搜索文本
/concurrency#降低sidekiq中的并发级别
sidekiq['concurrency'] = 15 #vim搜索,在普通模式下输入 /要搜索文本
/prometheus_monitoring#禁用普罗米修斯监控
prometheus_monitoring['enable'] = false       #vim搜索,在普通模式下输入 /要搜索文本
/worker_memory_limit_min#最小内存改为300
unicorn['worker_memory_limit_min'] = "300 * 1 << 20 #vim搜索,在普通模式下输入 /要搜索文本
/worker_memory_limit_max#最大内存改为600
unicorn['worker_memory_limit_max'] = "600 * 1 << 20        #vim搜索,在普通模式下输入 /要搜索文本
/external_url 是被注释掉的,在文件中增加以下配置
#访问的ip或者域名这里不强制修改,默认使用你本机ip访问
external_url 'http://192.168.56.10'  

修改完成后在容器中执行:
gitlab-ctl restart

注意这里的命令是restart不是 reconfigure(根据配置文件/etc/gitlab/gitlab.rb 重新生成配置) ,否则还会恢复原来的配置。只要执行了gitlab-ctl reconfigure,配置就会被还原。 所以如果你重启了容器之后,那这里的端口就又需要改一遍。

2.3 访问和重置密码

输入http://ip:8087即可访问登录页面,GitLab的默认端口号是80端口我们在安装时把8087给映射给80

例如我的访问地址为http://192.168.56.10:8087/

在这里插入图片描述

获取初始化用户名和密码,GitLab的默认用户名是root

docker exec -it gitlab /bin/bashcat /etc/gitlab/initial_root_password 
$ cat /etc/gitlab/initial_root_password 
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.Password: mmPPA7vlzRPgdEgQXu1LnWbok6OUNgiAgoZvhYnCgrw=# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

mmPPA7vlzRPgdEgQXu1LnWbok6OUNgiAgoZvhYnCgrw=是默认的初始密码,
我们可以在/etc/gitlab/gitlab.rb配置文件中设置自己的root密码,也可以用默认的密码登陆再修改自己想要的密码。要注意该文件24小时后自动删除

在这里插入图片描述

修改重新登陆即可。

2.4 重置管理员密码

对于大部分的人来说,忘记密码是一件很正常的事情,作者也不例外。普通账户密码忘记了,可以通过管理员账户重置密码,但是管理员密码忘了,就需要进行一些其他的操作了。

1)首先进入 docker 容器。

docker exec -it gitlab bash

2)然后打开 GitLab Rails的控制台,这将连接到 gitlab 的数据库,需要谨慎操作。

gitlab-rails console -e production

等待加载完后会进入控制台,然后就是通过用户名或邮箱找到用户,比如作者的管理员用户账号是 root。

user = User.find_by(username: 'root')

通过上一步查找到 root 用户,并赋值给 user,现在可以通过 user 更改密码。

# 至少 8 字符
user.password = 'root123456'
user.password_confirmation = 'root123456'

修改密码后进行保存即可。

user.save!

这样,密码就修改为 root123456了,使用 exit 命令退出即可。

[root@localhost ~]# docker exec -it gitlab bash
root@583c1f771298:/# gitlab-rails console -e production
-------------------------------------------------------------------------------------GitLab:       11.1.4 (63daf37)GitLab Shell: 7.1.4postgresql:   9.6.8
-------------------------------------------------------------------------------------
Loading production environment (Rails 4.2.10)
irb(main):001:0> user = User.find_by(username: 'root')
=> #<User id:1 @root>
irb(main):002:0> user.password = 'root123456'
=> "root123456"
irb(main):003:0> user.password_confirmation = 'root123456'
=> "root123456"
irb(main):004:0> user.save!
Enqueued ActionMailer::DeliveryJob (Job ID: 33d1a832-57b4-43f3-ae85-15a4e11581cf) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/1
=> true
irb(main):005:0> exit

3. 安装包安装GitLab

3.1 安装部署

3.1.1 安装准备

1)需要开启ssh:(已开启可跳过)

sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd

2)防火墙开放http、https服务:(已关闭防火墙可跳过)

sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
3.1.2 rpm 包安装

1)上传安装包

下载地址:https://packages.gitlab.cn/#browse/search/

安装包较大,建议下载好手动上传服务器。这里上传到/opt/software

2)编写安装脚本

cd ~/bin
vim gitlab-install.sh

脚本内容如下:

sudo yum install -y curl policycoreutils-python openssh-server perlcurl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bashsudo rpm -ivh gitlab-jh-16.6.1-jh.0.el7.x86_64.rpmsudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix

3)修改脚本执行权限并执行

chmod +x gitlab-install.sh
sh gitlab-install.sh

**4)**修改external_url

编辑gitlab.rb

sudo vim /etc/gitlab/gitlab.rb

在文件中找到external_url,修改为如下内容

external_url 'http://192.168.56.10'  

保存退出

**5)**修改host

编辑gitlab.yml

sudo vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml.example

找到gitlab.host修改为如下内容

  gitlab:\## Web server settings (**note:** host is the FQDN, do not include http://)host: 192.168.56.10port: 8087https: false

保存退出

修改文件名称

sudo mv /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml.example /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

6)重装需要彻底卸载

1 卸载gitlab

sudo rpm -e gitlab-jh-16.6.1

2 删除gitlab文件

sudo rm -rf /etc/gitlab
sudo rm -rf /var/opt/gitlab
sudo rm -rf /opt/gitlab

3 重装如果卡在sudo gitlab-ctl reconfigure配置命令上,可以使用另外一个窗口执行

sudo systemctl restart gitlab-runsvdir
2.1.3 执行初始化

执行过程大概需要3分钟:

sudo gitlab-ctl reconfigure
2.1.4 启停命令

1)启动命令

sudo gitlab-ctl start

2)停止命令

sudo gitlab-ctl stop
2.1.5 修改 root 密码

1)访问Web页面

输入http://ip:8087即可访问登录页面,GitLab的默认端口号是80端口

例如我的访问地址为http://192.168.56.10:8087/

2)查看root密码

账号root,密码将随机生成并在 /etc/gitlab/initial_root_password 中保存24 小时:

sudo cat /etc/gitlab/initial_root_passwordzOyGe6aBQbkfYf6rOZP2qaWQOAo59K0HMrq9Rs7Yi2w=

修改密码:

在这里插入图片描述

2.1.6 设置简体中文

在这里插入图片描述

回到首页,可以看到变成中文:

在这里插入图片描述

作者博客: www.lstar.icu
开源地址
Gitee 地址: https://gitee.com/lxwise
Github 地址: https://github.com/lxwise


文章转载自:

http://CFUwwFGl.tsynj.cn
http://RxSHN2pE.tsynj.cn
http://rx6j4L0K.tsynj.cn
http://5lRfqBhK.tsynj.cn
http://b3CW23GF.tsynj.cn
http://mrxY0Rxq.tsynj.cn
http://KMLFpzqB.tsynj.cn
http://KfVGjNwK.tsynj.cn
http://wKSz1Amx.tsynj.cn
http://oue3hPN6.tsynj.cn
http://efv3xSgJ.tsynj.cn
http://t5cA6xgh.tsynj.cn
http://fyKLfsWW.tsynj.cn
http://iKjxGPHq.tsynj.cn
http://dmSg7QUB.tsynj.cn
http://tGRztQWP.tsynj.cn
http://LbfhHEVS.tsynj.cn
http://1ZsvZUzM.tsynj.cn
http://nRaVCzZo.tsynj.cn
http://kuaWLrG0.tsynj.cn
http://SiVLEiZB.tsynj.cn
http://Qp2Tm3e5.tsynj.cn
http://uK4eAlFC.tsynj.cn
http://IWyiA4LY.tsynj.cn
http://nHqLtp3o.tsynj.cn
http://FulMg12z.tsynj.cn
http://6rdk8SPc.tsynj.cn
http://MdYDEQIv.tsynj.cn
http://lVRz3nhx.tsynj.cn
http://ntYHMJjq.tsynj.cn
http://www.dtcms.com/a/385129.html

相关文章:

  • 大屏可视化动图渲染
  • Claude Code生态、实战
  • 系统架构设计师备考第24天——需求工程
  • 逻辑回归模型:基于鸢尾花数据集的多分类任务全流程
  • 实战适配器模式
  • OpenLayers数据源集成 -- 章节十三:EsriJSON图层详解
  • RabbitMQ—运维篇
  • 一站式YOLO目标检测解决方案:训练、测试、推理与数据集转换全流程指南
  • lamp脚本部署
  • 前端构建工具有哪些?常用前端构建工具对比、前端构建工具推荐与最佳实践分析
  • Charles日志分析与流量监控技巧 高效排查接口与性能问题
  • ACM模式的输入部分——input().strip() 与 sys.stdin.readline() 的不同
  • ““.equals(studentID)
  • 【Lesson 3】CUDA 编程模型:线程、块、网格 —— Ubuntu 22.04 + RTX 30/40 系列实战
  • [Windows]C盘瘦身 --- 软件搬家
  • CLIP 完全上手指南:从安装、下载加速、文本/图像编码到图文匹配,一篇全搞定!
  • BKY莱德因:5大黑科技逆转时光
  • 开源嵌入模型推荐与选型指南
  • 科普:Python中为什么“from .utils” 不能写成 “from ./utils”?
  • 客户粘性提升策略是什么?系统化策略提升客户粘性指南
  • Spring 框架从入门到精通(第一篇)—— 框架核心与 IOC 容器实践
  • 通过DSL生成Jenkins流水线
  • 构建AI智能体:三十四、LangChain SQLDatabaseToolkit终极指南:架构、优势与最佳实践
  • 算法 --- 字符串
  • PDF 文件创建时间属性怎样批量修改详细教程
  • hutool DesensitizedUtil
  • train.py代码学习 自学
  • 安全与效率的平衡术:安全空间
  • 【Unity】事件分发系统的使用示例
  • dinov3 源码 笔记1