前言 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文章
7852瀏覽量
137683 -
服務器
+關注
關注
12文章
9285瀏覽量
85844 -
流水線
+關注
關注
0文章
121瀏覽量
25914
發布評論請先 登錄
相關推薦
評論