0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Flexus X实例GitLab部署和构建流水线-私人一体化代码仓库

jf_94205927 来源:jf_94205927 作者:jf_94205927 2025-01-18 11:09 次阅读

前言 Gitlab

828 B2B 企业节盛大启幕,GitLab 赋能自动化流程,引领创新部署新时代!在这个瞬息万变的数字时代,我们激动地推出整合 GitLab、Docker 的顶尖解决方案,为您的软件开发项目注入前所未有的效率与灵活性。专为追求卓越的一体化开发流程设计,这一方案将彻底改变您从代码提交到生产上线的全过程。

GitLab 是一个基于 Git 的开源分布式版本控制系统,也是一个用于仓库管理系统的 Web 服务。它由 Dmitriy Zaporozhets 和 Valery Sizov 于 2011 年创建,旨在构建企业自托管 Git 平台,减少对外部依赖。GitLab 提供了丰富的功能,包括代码托管、版本控制、代码审查、项目管理、持续集成/持续部署(CI/CD)等

本实践指南将引领您深入体验 GitLab CI/CD 与 GitLab Runner 的完美融合,以构建一套高效、自动化的.NET 控制台应用程序部署流程。您将学习到如何通过 GitLab CI/CD 功能配置 Runner 来监听 GitLab 的 Webhooks,从而实现在代码提交后自动触发构建和部署流程;如何利用 Docker 容器技术来快速打包和运行您的.NET 控制台应用;以及如何通过编写.gitlab-ci.yml 脚本来管理整个自动化部署流程。

环境准备

本实验环境是 Flexus X 实例自定义模式,使用了 4vCPUs | 12GiB,镜像是最高版本的 ubuntu,我已经提前在服务器中安装了 docker 环境,在之前的实验中使用 xshell 连接了服务器,随后在服务器中安装了 dokcer。可自行操作或参考下面实验(完成购买服务器以及安装 docker 步骤)!

GitLab 部署

拉取 GitLab 镜像

GitLab 提供了免费的社区版(CE),适合中小型公司和个人开发者使用。同时,它也提供了收费的企业版(EE),为企业用户提供更多的高级功能和支持。下面实验中我们使用社区版。

首先,从 Docker Hub 上拉取 GitLab 的镜像。使用以下命令拉取最新版本的 GitLab CE(社区版)镜像:

docker pull gitlab/gitlab-ce

如果你需要特定版本的 GitLab,可以将 latest 替换为具体的版本号,例如 gitlab/gitlab-ce:14.10.0。

创建映射目录

GitLab 在容器内部会生成配置文件、日志文件和数据文件。为了方便管理和持久化这些文件,你需要在宿主机上创建相应的目录,并将它们映射到容器内部。通常,你会创建以下三个目录:

·/srv/gitlab/config:用于存放 GitLab 的配置文件。

·/srv/gitlab/logs:用于存放 GitLab 的日志文件。

·/srv/gitlab/data:用于存放 GitLab 的数据文件。

可以使用以下命令创建这些目录:

mkdir -p /srv/gitlab/config

mkdir -p /srv/gitlab/logs

mkdir -p /srv/gitlab/data

运行 GitLab 容器

接下来,使用 docker run 命令运行 GitLab 容器。你需要指定容器的一些运行参数,如主机名、端口映射、容器名称、重启策略以及数据卷映射等。以下是一个基本的运行命令示例:

docker run --detach --publish 443:443 --publish 80:80 --publish 2222:22 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume

/srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

--detach:在后台运行容器。

--publish:将容器内部的端口映射到宿主机的端口上,便于外部访问。

--name:为容器指定一个名称。

--restart always:设置容器总是自动重启。

--volume:将容器内的数据卷映射到宿主机的指定目录上。

修改 gitlab.rb 配置

(因为文件内容比较多,不熟悉的话建议将服务器上的配置拉下来全局搜索修改)

执行命令 vim srv/gitlab/config/gitlab.rb 找到下面这个配置

# external_url 'GENERATED_EXTERNAL_URL'(大约在 32 行位置)

wKgZPGdtLJyADwGQAAA_re10ZwY475.png

去掉注释,并修改为我们服务器的地址!!!

wKgZO2dtLJ2ALJBiAAAdyFjXoZA860.png

配置 ssh 使用的访问地址和端口

# gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'(大约在 66 行位置)

wKgZPGdtLJ2ACM1rAAAYcmnmm1E133.png

修改 gitlab_rails['gitlab_shell_ssh_port'] 为 = 2222,因为上面 docker run 的时候,我们避免端口冲突,设置端口映射配置为--publish 2222:22(大约在 698 行位置)

wKgZO2dtLJ2AE-6cAAAZ37CqdK4817.png

主要修改的地方就上面三处,我们还可以修改如下配置设置 SMTP 服务器,配置 SMTP 的作用有:

如当新用户注册 GitLab 账户时,系统可以通过 SMTP 发送一封确认邮件给用户,以确保用户邮箱的有效性,并允许用户完成注册过程。

或是当项目中有新的合并请求(Merge Request)时,GitLab 可以自动通过 SMTP 向相关用户发送通知邮件,提醒他们审查或处理合并请求等等等~~~

可根据需求自行选择是否配置

修改代码并提交

上面的部署流程已经走通,接下来我们在本地修改一下代码,并通过 git 提交上去。

wKgZPGdtLJ2APFOFAAGoe5hySpc549.png

代码提交后,gitlab 会自动触发构建流水线!

wKgZO2dtLJ6ADkxlAAG3YBeoILs272.png

在作业的控制台中看到成功输出我们刚刚打印的内容!

wKgZPGdtLJ6Ab8oEAAPsqSk-i7A552.png

以上只是一个监听 gitlab 代码提交自动触发构建和部署的简单案例,在 GitLab CI/CD 的实际开发场景中,使用.gitlab-ci.yml 文件来定义构建、测试、部署等流程远比上述简单的示例复杂和多样化。根据你的具体需求和项目规模,你可以通过调整 CI/CD 流程以适应你的工作流程和环境。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 云计算
    +关注

    关注

    39

    文章

    7904

    浏览量

    138325
  • 服务器
    +关注

    关注

    12

    文章

    9417

    浏览量

    86475
  • 流水线
    +关注

    关注

    0

    文章

    122

    浏览量

    26194
收藏 人收藏

    相关推荐

    什么是机电一体化

    机电一体化http://www.gooxian.com/article/show-1823.htm就是“利用电子、信息(包括传感器、控制、计算机等)技术使机械柔性和智能”的技术1) 术语的来源
    发表于 08-29 09:06

     华为云ServiceStage完美支持多个主流源码托管仓库

    Gitee、GitHub、Gitlab、Bitbucket及DevCloud等主流源码托管仓库,开发者可根据实际需要,选择合适的源码仓库对接ServiceStage的微服务流水线。  
    发表于 08-03 13:58

    什么是流水线技术

    什么是流水线技术 流水线技术
    发表于 02-04 10:21 3975次阅读

    电镀流水线的PLC控制

    电镀流水线的PLC控制电镀流水线的PLC控制电镀流水线的PLC控制
    发表于 02-17 17:13 36次下载

    如何利用乐高积木制作成自动流水线

    自动流水线个统称,包括组装流水线、皮带流水线、链板线、插件线等等,主要通过自动系统来操作
    的头像 发表于 05-22 06:06 6907次阅读

    FPGA之为什么要进行流水线的设计

    流水线又称为装配线,种工业上的生产方式,指每个生产单位只专注处理某个片段的工作。以提高工作效率及产量;按照流水线的输送方式大体可以分为
    的头像 发表于 11-28 07:04 3711次阅读

    各种流水线特点及常见流水线设计方式

    按照流水线的输送方式大体可以分为:皮带流水装配线、板链线、倍速链、插件线、网带线、悬挂线及滚筒流水线这七类流水线
    的头像 发表于 07-05 11:12 7576次阅读
    各种<b class='flag-5'>流水线</b>特点及常见<b class='flag-5'>流水线</b>设计方式

    滚筒输流水线故障排除方法

    在工程建造中,滚筒流水线演着重要的角色。在些工程建造过程中,经常看到滚筒流水线的身影。在工业不断发展下的今天,滚筒流水线日益增长,走向多元
    发表于 07-08 09:32 1970次阅读

    嵌入式_流水线

    流水线、定义流水线是指在程序执行时多条指令重叠进行操作的种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,他们可同时为多条指令的不同部分进行工作。• 把
    发表于 10-20 20:51 6次下载
    嵌入式_<b class='flag-5'>流水线</b>

    基于非常简单的Python代码就能完成流水线开发

    Mara-pipelines 是个轻量级的数据转换框架,具有透明和低复杂性的特点。其他特点如下: 基于非常简单的Python代码就能完成流水线开发。 使用 PostgreSQL 作为数据处理引擎
    的头像 发表于 11-16 18:20 3021次阅读

    什么是流水线 Jenkins的流水线详解

    jenkins 有 2 种流水线分为声明式流水线与脚本流水线,脚本流水线是 jenkins
    发表于 05-17 16:57 1156次阅读

    华为云 Flexus X 实例:极速搭建个人代码仓库 GitLab 平台

    ​ 目录 前言 1 Flexus 云服务器 X 介绍 1 1.1 Flexus 云服务器 X 实例
    的头像 发表于 01-23 18:29 164次阅读
    华为云 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b>:极速搭建个人<b class='flag-5'>代码</b><b class='flag-5'>仓库</b> <b class='flag-5'>GitLab</b> 平台

    华为云 Flexus X 实例 docker 部署最新 gitlab 社区版,搭建自己的私人代码仓库

    · 华为云最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建 MySQL、Redis、Nginx 等服务的需求,
    的头像 发表于 01-02 12:01 145次阅读
    华为云 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b> docker <b class='flag-5'>部署</b>最新 <b class='flag-5'>gitlab</b> 社区版,搭建自己的<b class='flag-5'>私人代码</b><b class='flag-5'>仓库</b>

    云服务器 Flexus X 实例部署 Gitea,拥有自己的 Git 仓库,管理本地代码

    、零售、金融、游戏等众多领域的通用工作负载需求。本文旨在详细阐述如何高效利用“云服务器 Flexus X 实例”,包括如何在其中从零开始,通过安装相关依赖、安装 Docker、安装 Gitea 等步骤,实现自己的 Git
    的头像 发表于 01-07 16:59 177次阅读
    云服务器 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b>:<b class='flag-5'>部署</b> Gitea,拥有自己的 Git <b class='flag-5'>仓库</b>,管理本地<b class='flag-5'>代码</b>

    云端代码管理新体验,华为云 Flexus X 实例GitLab 部署与使用的实战指南云端代码管理新体验

    前言**** 华为云 Flexus X 云服务器携手 GitLab,为开发者和企业带来了云端部署的全新选择。Flexus
    的头像 发表于 01-07 17:05 274次阅读
    云端<b class='flag-5'>代码</b>管理新体验,华为云 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b>上 <b class='flag-5'>GitLab</b> <b class='flag-5'>部署</b>与使用的实战指南云端<b class='flag-5'>代码</b>管理新体验