写点什么

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

作者:YG科技
  • 2024-12-26
    海南
  • 本文字数:2015 字

    阅读完需:约 7 分钟

前言 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 步骤)!

828华为云征文|Flexus X实例C#/.Net Core 结合(git代码管理、docker自定义镜像)快速发布部署-让你的项目飞起来~-CSDN博客

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 行位置)


 

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


 

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

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


 

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


 

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

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

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

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


修改代码并提交

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


 

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


 

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


 

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

用户头像

YG科技

关注

还未添加个人签名 2023-03-20 加入

还未添加个人简介

评论

发布
暂无评论
Flexus X实例GitLab部署&构建流水线-私人一体化代码仓库~_YG科技_InfoQ写作社区