前言 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 行位置)
去掉注釋,并修改為我們服務器的地址!!!
配置 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 流程以適應你的工作流程和環境。
-
云計算
+關注
關注
39文章
7859瀏覽量
137856 -
服務器
+關注
關注
12文章
9303瀏覽量
86059 -
流水線
+關注
關注
0文章
121瀏覽量
25955
發布評論請先 登錄
相關推薦
什么是機電一體化
華為云ServiceStage完美支持多個主流源碼托管倉庫
FPGA之為什么要進行流水線的設計
滾筒輸流水線故障排除方法
嵌入式_流水線
![嵌入式_<b class='flag-5'>流水線</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于非常簡單的Python代碼就能完成流水線開發
華為云 Flexus X 實例 docker 部署最新 gitlab 社區版,搭建自己的私人代碼倉庫
![華為云 <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>](https://file1.elecfans.com//web3/M00/04/88/wKgZPGd2D3uAOrqzAAD1pSqJWDg960.png)
云服務器 Flexus X 實例:部署 Gitea,擁有自己的 Git 倉庫,管理本地代碼
![云服務器 <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 部署與使用的實戰指南云端代碼管理新體驗
![云端<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>管理新體驗](https://file1.elecfans.com//web3/M00/05/2A/wKgZO2d87mmAI08cAAEA43MSbXE071.png)
評論