前言 Gitlab
828 B2B 企業(yè)節(jié)盛大啟幕,GitLab 賦能自動化流程,引領(lǐng)創(chuàng)新部署新時代!在這個瞬息萬變的數(shù)字時代,我們激動地推出整合 GitLab、Docker 的頂尖解決方案,為您的軟件開發(fā)項目注入前所未有的效率與靈活性。專為追求卓越的一體化開發(fā)流程設(shè)計,這一方案將徹底改變您從代碼提交到生產(chǎn)上線的全過程。
GitLab 是一個基于 Git 的開源分布式版本控制系統(tǒng),也是一個用于倉庫管理系統(tǒng)的 Web 服務(wù)。它由 Dmitriy Zaporozhets 和 Valery Sizov 于 2011 年創(chuàng)建,旨在構(gòu)建企業(yè)自托管 Git 平臺,減少對外部依賴。GitLab 提供了豐富的功能,包括代碼托管、版本控制、代碼審查、項目管理、持續(xù)集成/持續(xù)部署(CI/CD)等
本實踐指南將引領(lǐng)您深入體驗 GitLab CI/CD 與 GitLab Runner 的完美融合,以構(gòu)建一套高效、自動化的.NET 控制臺應(yīng)用程序部署流程。您將學(xué)習(xí)到如何通過 GitLab CI/CD 功能配置 Runner 來監(jiān)聽 GitLab 的 Webhooks,從而實現(xiàn)在代碼提交后自動觸發(fā)構(gòu)建和部署流程;如何利用 Docker 容器技術(shù)來快速打包和運行您的.NET 控制臺應(yīng)用;以及如何通過編寫.gitlab-ci.yml 腳本來管理整個自動化部署流程。
環(huán)境準(zhǔn)備
本實驗環(huán)境是 Flexus X 實例自定義模式,使用了 4vCPUs | 12GiB,鏡像是最高版本的 ubuntu,我已經(jīng)提前在服務(wù)器中安裝了 docker 環(huán)境,在之前的實驗中使用 xshell 連接了服務(wù)器,隨后在服務(wù)器中安裝了 dokcer。可自行操作或參考下面實驗(完成購買服務(wù)器以及安裝 docker 步驟)!
GitLab 部署
拉取 GitLab 鏡像
GitLab 提供了免費的社區(qū)版(CE),適合中小型公司和個人開發(fā)者使用。同時,它也提供了收費的企業(yè)版(EE),為企業(yè)用戶提供更多的高級功能和支持。下面實驗中我們使用社區(qū)版。
首先,從 Docker Hub 上拉取 GitLab 的鏡像。使用以下命令拉取最新版本的 GitLab CE(社區(qū)版)鏡像:
docker pull gitlab/gitlab-ce
如果你需要特定版本的 GitLab,可以將 latest 替換為具體的版本號,例如 gitlab/gitlab-ce:14.10.0。
創(chuàng)建映射目錄
GitLab 在容器內(nèi)部會生成配置文件、日志文件和數(shù)據(jù)文件。為了方便管理和持久化這些文件,你需要在宿主機上創(chuàng)建相應(yīng)的目錄,并將它們映射到容器內(nèi)部。通常,你會創(chuàng)建以下三個目錄:
·/srv/gitlab/config:用于存放 GitLab 的配置文件。
·/srv/gitlab/logs:用于存放 GitLab 的日志文件。
·/srv/gitlab/data:用于存放 GitLab 的數(shù)據(jù)文件。
可以使用以下命令創(chuàng)建這些目錄:
mkdir -p /srv/gitlab/config
mkdir -p /srv/gitlab/logs
mkdir -p /srv/gitlab/data
運行 GitLab 容器
接下來,使用 docker run 命令運行 GitLab 容器。你需要指定容器的一些運行參數(shù),如主機名、端口映射、容器名稱、重啟策略以及數(shù)據(jù)卷映射等。以下是一個基本的運行命令示例:
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:將容器內(nèi)部的端口映射到宿主機的端口上,便于外部訪問。
--name:為容器指定一個名稱。
--restart always:設(shè)置容器總是自動重啟。
--volume:將容器內(nèi)的數(shù)據(jù)卷映射到宿主機的指定目錄上。
修改 gitlab.rb 配置
(因為文件內(nèi)容比較多,不熟悉的話建議將服務(wù)器上的配置拉下來全局搜索修改)
執(zhí)行命令 vim srv/gitlab/config/gitlab.rb 找到下面這個配置
# external_url 'GENERATED_EXTERNAL_URL'(大約在 32 行位置)
去掉注釋,并修改為我們服務(wù)器的地址!!!
配置 ssh 使用的訪問地址和端口
# gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'(大約在 66 行位置)
修改 gitlab_rails['gitlab_shell_ssh_port'] 為 = 2222,因為上面 docker run 的時候,我們避免端口沖突,設(shè)置端口映射配置為--publish 2222:22(大約在 698 行位置)
主要修改的地方就上面三處,我們還可以修改如下配置設(shè)置 SMTP 服務(wù)器,配置 SMTP 的作用有:
如當(dāng)新用戶注冊 GitLab 賬戶時,系統(tǒng)可以通過 SMTP 發(fā)送一封確認(rèn)郵件給用戶,以確保用戶郵箱的有效性,并允許用戶完成注冊過程。
或是當(dāng)項目中有新的合并請求(Merge Request)時,GitLab 可以自動通過 SMTP 向相關(guān)用戶發(fā)送通知郵件,提醒他們審查或處理合并請求等等等~~~
可根據(jù)需求自行選擇是否配置
修改代碼并提交
上面的部署流程已經(jīng)走通,接下來我們在本地修改一下代碼,并通過 git 提交上去。
代碼提交后,gitlab 會自動觸發(fā)構(gòu)建流水線!
在作業(yè)的控制臺中看到成功輸出我們剛剛打印的內(nèi)容!
以上只是一個監(jiān)聽 gitlab 代碼提交自動觸發(fā)構(gòu)建和部署的簡單案例,在 GitLab CI/CD 的實際開發(fā)場景中,使用.gitlab-ci.yml 文件來定義構(gòu)建、測試、部署等流程遠(yuǎn)比上述簡單的示例復(fù)雜和多樣化。根據(jù)你的具體需求和項目規(guī)模,你可以通過調(diào)整 CI/CD 流程以適應(yīng)你的工作流程和環(huán)境。
-
云計算
+關(guān)注
關(guān)注
39文章
7857瀏覽量
137946 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9335瀏覽量
86135 -
流水線
+關(guān)注
關(guān)注
0文章
121瀏覽量
25982
發(fā)布評論請先 登錄
相關(guān)推薦
什么是機電一體化
華為云ServiceStage完美支持多個主流源碼托管倉庫
如何利用樂高積木制作成自動化流水線
FPGA之為什么要進行流水線的設(shè)計
滾筒輸流水線故障排除方法
嵌入式_流水線
![嵌入式_<b class='flag-5'>流水線</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于非常簡單的Python代碼就能完成流水線開發(fā)
華為云 Flexus X 實例 docker 部署最新 gitlab 社區(qū)版,搭建自己的私人代碼倉庫
![華為云 <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> 社區(qū)版,搭建自己的<b class='flag-5'>私人代碼</b><b class='flag-5'>倉庫</b>](https://file1.elecfans.com//web3/M00/04/88/wKgZPGd2D3uAOrqzAAD1pSqJWDg960.png)
云服務(wù)器 Flexus X 實例:部署 Gitea,擁有自己的 Git 倉庫,管理本地代碼
![云服務(wù)器 <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>](https://file1.elecfans.com//web3/M00/05/1F/wKgZPGd87QaAJVbvAACdaV5O4ZM332.png)
云端代碼管理新體驗,華為云 Flexus X 實例上 GitLab 部署與使用的實戰(zhàn)指南云端代碼管理新體驗
![云端<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>與使用的實戰(zhàn)指南云端<b class='flag-5'>代碼</b>管理新體驗](https://file1.elecfans.com//web3/M00/05/2A/wKgZO2d87mmAI08cAAEA43MSbXE071.png)
評論