目录
前言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行位置)