【Git管理工具】使用Docker+浪浪云服务器部署GitLab服务器

news2024/12/23 10:12:26

一、什么是GitLab

1.1.GitLab简介

GitLab 是一个开源的 DevOps 平台,它基于 Git 版本控制系统提供了从项目规划、源代码管理到持续集成、持续部署、监控和安全的完整生命周期管理。GitLab 是一个为开发者提供协作工作的工具,它使得团队能够高效地在同一个应用程序内完成整个软件开发过程。

1.2.GitLab特点

  1. **全功能的CI/CD:**GitLab 提供了内置的持续集成和持续部署(CI/CD)功能,使开发团队能够自动化代码的构建、测试和部署过程,从而提高软件交付的速度和质量。

  2. **单一应用程序:**与需要集成多个独立工具的其他解决方案不同,GitLab 提供了一个单一的应用程序来处理开发生命周期中的所有阶段。这减少了维护成本,避免了插件不兼容的问题,并提高了效率。

  3. **项目管理和议题跟踪:**GitLab 提供了灵活的问题跟踪系统,允许用户创建、管理和跟踪议题(issues)。团队可以使用看板(Kanban)板进行项目管理,规划迭代和跟踪进度。

  4. **代码审查:**通过合并请求(Merge Requests, MRs),GitLab 提供了代码审查功能,以确保代码质量,并通过讨论来改进代码实现。

  5. **安全和合规性:**GitLab 强调安全性,提供了动态和静态的应用程序安全测试、依赖扫描和容器扫描,以便在代码发布之前检测潜在的安全问题。

  6. **集成:**尽管 GitLab 是一个全面的DevOps工具,它也提供了与其他工具(如JIRA、Slack、Kubernetes等)的集成能力,以便团队可以使用他们喜欢的工具。

  7. **自托管和云托管选项:**GitLab 提供了多种部署选项,包括完全托管的GitLab.com服务以及可以在私有服务器上自托管的GitLab CE(社区版)和EE(企业版)。

  8. **可扩展性和可定制性:**企业可以根据自己的需求定制和扩展 GitLab 的功能,例如通过使用API或编写自定义的GitLab CI的YAML文件。

  9. **社区支持:**GitLab 拥有一个活跃的社区,用户可以从社区获得帮助,分享最佳实践,或者为GitLab的发展贡献代码。

  10. **开源:**GitLab CE 是开源的,这意味着用户可以自由使用、修改和分发软件,这提供了高度的透明度和可定制性。

GitLab 作为一个综合性的 DevOps 平台,它的目标是简化软件开发工作流程,使开发、运维以及安全团队能够在一个连贯的环境中协同工作,从而加快交付速度,减少操作复杂性,并提高软件的质量和安全性。

GitLab地址:The most-comprehensive AI-powered DevSecOps platform | GitLab

二、前期准备

2.1.服务器准备

推荐浪浪云服务器,稳定!高防!!有保证!!!

浪浪云官方新上的活动,4H4G一年仅需要259,活动链接:浪浪云 - 提供高防 稳定 有保障

系统我这边使用的是centos,但是用的Docker部署,用其他操作系统同样可以

image-xpxd.png

2.2.连接服务器

连接过程参考**浪浪云帮助文档,如果是独立IP正常走22的ssh端口即可

image-zrjm.png

2.3.安装Docker以及Docker Compose

安装Docker,使用国内源

yum update #更新软件源

输入Y确定跟新,可以看到浪浪云的网速还是非常快的

image-2j0w.png

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #安装Docker使用阿里源

image-wyew.png

检查Docker服务是否正常运行,确保Docker正常运行

[root@ECS3682 ~]# docker -v
Docker version 26.0.0, build 2ae903e
[root@ECS3682 ~]# systemctl start docker
[root@ECS3682 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2024-04-11 03:49:34 EDT; 2s ago
Docs: https://docs.docker.com
Main PID: 92646 (dockerd)
Tasks: 8
Memory: 33.4M
CGroup: /system.slice/docker.service
└─92646 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

4月 11 03:49:32 ECS3682 systemd[1]: Starting Docker Application Container Engine...
4月 11 03:49:32 ECS3682 dockerd[92646]: time="2024-04-11T03:49:32.905107057-04:00" level=info msg="Starting up"
4月 11 03:49:32 ECS3682 dockerd[92646]: time="2024-04-11T03:49:32.961431066-04:00" level=info msg="Loading containers: start."
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.188213741-04:00" level=info msg="Firewalld: interface docker0 already part of docker zone, retu>
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.382595216-04:00" level=info msg="Loading containers: done."
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.419428998-04:00" level=info msg="Docker daemon" commit=8b79278 containerd-snapshotter=false sto>
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.419677146-04:00" level=info msg="Daemon has completed initialization"
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.467028373-04:00" level=info msg="API listen on /run/docker.sock"
4月 11 03:49:34 ECS3682 systemd[1]: Started Docker Application Container Engine.

安装Docker Compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s-uname -m` > /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose #添加可执行权限

docker-compose --version #查看版本

image-xjap.png

三、正式部署GitLab

3.1.创建对应的目录以及配置文件

mkdir -p /data/gitlab/{data,logs,config} && cd /data/gitlab/

3.2.创建docker-compose.yml文件

vim /data/gitlab/docker-compose.yml

对应内容如下

version: "3"
services:
gitlab:
container_name: gitlab
image: gitlab/gitlab-ce:latest
hostname: '浪浪云ip'
restart: always
ports:

  • 8011:8011
  • 8443:443
  • 2222:22/tcp
    volumes:
  • /etc/localtime:/etc/localtime
  • /data/gitlab/data:/var/opt/gitlab
  • /data/gitlab/config:/etc/gitlab
  • /data/gitlab/logs:/var/log/gitlab
    environment:
    GITLAB_OMNIBUS_CONFIG: |
    external_url '浪浪云:8011'
    gitlab_rails['gitlab_shell_ssh_port'] = 2222
    deploy:
    resources:
    limits:
    memory: 4G
    reservations:
    memory: 1G

3.3.使用docker compose启动容器

docker compose up -d

image-e9eg.png

如果速度过慢的话可以更改国内源

sudo vim /etc/docker/daemon.json
#添加如下配置文件
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
#保存配置文件
sudo systemctl daemon-reload
#重启Docker
sudo service docker restart

dokcer ps #容器状态

image-bjyi.png

3.4.配置端口转发

推荐浪浪云服务器,稳定!高防!!有保证!!!

来到浪浪云服务器管理界面

转发上面对应的那几个端口号,如果是独立IP的话,就可以不用进行端口转发

image-wfuc.png

通过浪浪云的IP:转发的80端口

image-szue.png

四、GitLab设置

4.1.重置登录密码

进入容器

[root@docker gitlab]# docker exec -it gitlab /bin/bash
root@gitlab:/#

进入控制台

gitlab-rails console -e production

查询管理员密码

user = User.where(id:1).first
#修改密码
user.password='langlangyun'

保存

user.save!

退出

exit

4.2.设置为中文

在Preferences页面中,找到“Localization”区域,将“Language”选项修改为“简体中文”

image-qonm.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1648269.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海洋行业工业气体检测传感器的重要性

海洋行业是一个广阔而复杂的领域,涉及多个分支和应用,包括浮式生产、储存和卸载(FPSO)装置、渡轮和潜艇等。这些船舶和设施在执行任务时,都可能遇到各种潜在的气体危害。因此,对于海洋行业来说,…

Redis系列之key过期策略介绍

为什么要有过期策略&#xff1f; Redis是一个内存型的数据库&#xff0c;数据是放在内存里的&#xff0c;但是内存也是有大小的&#xff0c;所以&#xff0c;需要配置redis占用的最大内存&#xff0c;主要通过maxmemory配置 maxmomory <bytes> # redis占用的最大内存官…

python中一些莫名其妙的异常

目录 一、字符串中空格\xa0二、文件写入为空问题三、Counter对NAN空值的统计问题 一、字符串中空格\xa0 对于文本中的一些空格&#xff0c;原始状态时显示为普通“空格”&#xff08;其实是latin1编码字符&#xff09;&#xff0c;但是经过split()操作后&#xff0c;这些latin…

如何用道氏理论进行炒现货白银的技术分析?

要炒现货白银&#xff0c;就要对白银价格进行技术分析。进行炒白银的技术分析&#xff0c;目的是让投资者通过对白银价格图表的分析&#xff0c;判断白银市场趋势&#xff0c;进而寻找入场交易的机会。 道氏理论不光是一种技术分析的理论&#xff0c;它还被称为技术分析的鼻祖。…

【XR806开发板试用】阻塞式串口发送与接收教程

本文基于wsl2搭建的ubuntu18.04 vscode编辑器 很奇怪啊&#xff0c;找了半天居然没人发串口的教程&#xff0c;于是只能自己试一试了&#xff0c;在此发一个阻塞式的串口发送与接收的教程。并且&#xff0c;感谢.ACE彭洪权大佬在我配置环境遇到几十个报错的时候帮我远程搭建环…

H3C Private VLAN实验

Private VLAN 实验1 实验需求 按照图示配置 IP 地址 在 SW1 上配置 Private VLAN&#xff0c;Primary VLAN 为 Vlan30&#xff0c;Secondary VLAN 为 Vlan10 和 Vlan20 SW2 通过 Vlan100 下行连接 SW1&#xff0c;要求 PC3 和 PC4 都能以 Vlan100 访问 PC5 在 SW1 上配置 …

给网站网页PHP页面设置密码访问代码

将MkEncrypt.php文件上传至你网站根目录下或者同级目录下。 MkEncrypt.php里面添加代码&#xff0c;再将调用代码添加到你需要加密的页进行调用 MkEncrypt(‘123456’);括号里面123456修改成你需要设置的密码。 密码正确才能进去页面&#xff0c;进入后会存下cookies值&…

java接受入参是xml格式参数demo

java接受入参是xml格式参数demo 依赖demo1. xml入参定义2.接口定义3. postman请求4. 结果 注解说明 依赖 pom依赖 jackson-dataformat-xml <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</…

RCLAMP0854P.TCT ESD抑制器 静电和浪涌保护 应用领域

RCLAMP0854P.TCT 是一款电路保护器件&#xff0c;属于Transient Voltage Suppressor (TVS) 系列产品。它是一种低电容TVS阵列&#xff0c;具有 RailClamp 标志性技术&#xff0c;旨在为电子设备提供高效防护&#xff0c;免受高电压瞬变和静电放电&#xff08;ESD&#xff09;的…

uni-app 超详细教程( 附送250套精选项目源码)

一&#xff0c;uniapp 介绍 &#xff1a; 官方网页 uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、Web&#xff08;响应式&#xff09;、以及各种小程序&#xff08;微信/支付宝/百度/头条/飞书/QQ/快手/…

信息泄露中的目录遍历,phpinfo,备份文件下载

一、目录遍历漏洞 1.什么是目录遍历漏洞 指的是在没有授权的情况下读取文件&#xff0c;某些情况下还可对服务器里的文件任意写入 2.目录遍历漏洞成因 网站配置存在缺陷&#xff0c;对输入目录缺少验证&#xff0c;没过滤../之类的目录跳转符&#xff0c;可通过提交目录跳转…

速卖通新卖家测评攻略:从入门到精通

在电商行业中&#xff0c;测评被广泛认为是提升产品转化率和销量的有效手段。对于速卖通的卖家而言&#xff0c;测评的必要性更是显而易见。测评&#xff0c;本质上与国内电商的补单行为相似&#xff0c;是一种通过增加销量来提升产品权重的方法。 特别是在竞争激烈的类目中&a…

【触摸案例-手势解锁案例-按钮高亮 Objective-C语言】

一、我们来说这个self.btns,这个问题啊,为什么不用_btns, 1.我们说,在懒加载里边儿,经常是写下划线啊,_btns,为什么不写,首先啊,这个layoutSubviews:我们第一次,肯定会去执行这个layoutSubviews: 然后呢,去懒加载这个数组, 然后呢,接下来啊,走这一句话, 第一次…

使用 Gitea 进行私有 Git 仓库管理

在本文中&#xff0c;我们将介绍如何使用 Gitea 搭建并管理私有 Git 仓库。Gitea 是一个轻量级的 Git 服务&#xff0c;提供了类似于 GitHub 的功能&#xff0c;适合个人和小团队使用。我们将通过以下步骤来完成搭建和配置 Gitea 服务器。 步骤一&#xff1a;安装 Gitea 首先…

关于Checkmarx、CodeQL和Semgrep的测试结果比较

关于Checkmarx、CodeQL和Semgrep的测试结果比较 随着SAST工具的不断的推陈出新&#xff0c;为了比较一些新的工具是否能够提供更好的扫描结果&#xff0c;针对Checkmarx、CodeQL以及Semgrep几个工具进行了测试评估&#xff0c;具体的评估结果仅供参考。本文列列举了工具的各个方…

SAP生产订单常用状态以及

常用系统状态&#xff1a; 状态 状态 CRTD 已建立 REL 已核发 CNF 已确认 PCNF 已部份确认 DLV 已交货 DLT 删除指示码 LKD 已锁住 TECO 技术完成 GMPS 已发料 关闭 关闭 工单结案前的生产报表分析 路径:后勤系统- 生产- 现场控制- 信息系统-订单信息系…

使用PyQt5设计系统登录界面—了解界面布局

前言&#xff1a;自学的过程中充分认识到网络搜索的重要性&#xff0c;有时候一篇通俗易懂的文章会让我这种入门级的小白更易上手&#xff0c;俗话说“开头难&#xff0c;难开头”&#xff0c;只要开了一个好头就不怕知难而退。 如何安装QT Designer界面设计所需要的环境 1. 如…

服务器数据恢复—ESXi虚拟机中MySQL数据库数据恢复案例

服务器数据恢复环境&#xff1a; 某品牌EVA某型号存储中部署VMware ESXi虚拟化平台&#xff0c;数据盘&#xff08;精简模式&#xff09;快照数据盘&#xff0c;虚拟机中有mysql数据库。 服务器故障&#xff1a; 机房意外断电导致该存储中的一台VMware虚拟机无法启动&#xff0…

网络安全之动态路由入门

动态路由协议有几种&#xff1a;RIP,OSPF,EIGRP,ISIS,BGP 动态路由工作原理&#xff1a; 例如&#xff1a; 若A区域运行的协议与B中的不同&#xff0c;数据从1到4走A区域还是走B区域&#xff0c;则看A,B两区域的优先级&#xff08;priority preference或AD——管理距离&#…

数据流转的艺术:深度解析tee命令的应用技巧

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 数据流转的艺术&#xff1a;深度解析tee命令的应用技巧 前言tee命令简介tee命令的基本用法tee命令的高级功能 前言 在Linux的世界里&#xff0c;有一位不太引人注意但却异常强大的命令&#xff0c;那…