如何使用 Docker Compose 安裝 GitLab?


[如何使用 Docker Compose 安裝 GitLab?](https://www.czerniga.it/2021/11/14/how-to-install-gitlab-using-docker-compose/)

你好。今天我將向你展示如何在一小時內安裝 GitLab 服務器並在其中運行你的第一個 CI/CD 進程。

本文是有關如何開始使用流行的 CI/CD 工具的系列文章的一部分。在本文中,我將向您展示如何安裝 CI/CD 工具以及如何准備構建和測試基於 Maven 的簡單項目的過程。

 

什么是 GitLab?

Gitlab 是一個使用持續集成和持續交付流程支持軟件開發的工具。它的主要組件是 Git 版本控制系統。此外,它還提供了許多功能,支持程序員在各種環境下持續構建、測試和自動安裝項目的工作。

什么是 Docker Compose?

要了解 Docker Compose 是什么,請參閱文章:如何使用 Docker Compose 安裝 Jenkins?

所需工具

在開始工作之前,准備好所需的工具。您可以在網站上找到這些工具的說明: 如何使用 Docker Compose 安裝 Jenkins?

Docker Compose 的配置

我們將通過創建一個專用目錄來開始安裝工作,我們將在其中存儲數據和 Gitlab 配置。

> mkdir gitlab

 

為方便起見,我們還將設置一個包含 Gitlab 目錄路徑的環境變量:

> export GITLAB_HOME=$(pwd)/gitlab

 

在下一步中,我們創建具有以下內容的 docker-compose.yml 文件:

 

# docker-compose.yml
version: '3.7' services: web: image: 'gitlab/gitlab-ce:latest' restart: always hostname: 'localhost' container_name: gitlab-ce environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://localhost' ports: - '8080:80' - '8443:443' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' networks: - gitlab gitlab-runner: image: gitlab/gitlab-runner:alpine container_name: gitlab-runner restart: always depends_on: - web volumes: - /var/run/docker.sock:/var/run/docker.sock - '$GITLAB_HOME/gitlab-runner:/etc/gitlab-runner' networks: - gitlab networks: gitlab: name: gitlab-network

此配置定義了我們要運行的容器。在我們的例子中,它將是帶有一個 GitLab 運行器的 GitLab 服務(一個用於運行 CI / CD 任務的單獨模塊)。最重要的配置參數是:

  • image – 我們想在我們的服務器中使用的 docker 鏡像
  • 端口——我們在容器外提供的端口列表。在我們的配置中,我們提供端口 80、443(網站)
  • container_name – 我們的容器的名稱
  • volumes - 指定容器使用的卷。在我們的配置中,我們有與我們的系統共享的目錄($ GITLAB_HOME 中的子目錄)和一個允許從 GitLab 運行器訪問 Docker 環境的附加卷。
  • 網絡——定義容器將在其中運行的虛擬網絡。在我們的例子中,www 門戶和運行器在一個“gitlab-network”中運行

Gitlab 安裝

使用以下命令啟動容器:

> docker-compose up -d

 

一旦啟動,Docker 將從服務器下載 GitLab 和 GitLab Runner 圖像。在我的電腦上看起來像這樣:

碼頭工人撰寫碼頭工人撰寫

首次登錄 GitLab 需要一個臨時密碼,該密碼在安裝過程中自動生成。我們使用以下命令獲取密碼:

> docker exec -it gitlab-ce grep 'Password:' /etc/gitlab/initial_root_password

 

GitLab 啟動

我們的 GitLab 位於:http://localhost:8080轉到此地址后,應出現以下屏幕:

注意:門戶首次啟動可能需要幾分鍾時間。

要登錄門戶,我們必須在用戶名字段中輸入“root”,並在密碼字段中輸入我們之前獲得的臨時密碼

登錄后,應出現以下屏幕:

GitLabGitLab

恭喜,GitLab 已經成功上線!

門戶的初始配置

在我們繼續之前,值得更改一些門戶設置。首先,我們將關閉所有人的公開注冊。為此,請單擊上方欄中可用的 View Setting 按鈕並顯示警告(面板地址; http://localhost:8080/admin/application_settings/general#js-signup-setting s )。在新頁面上,取消選中啟用注冊並保存更改。

下一步應該是更改 root 用戶。為此,請訪問網站: http://localhost:8080/-/profile/account並在更改用戶名字段中輸入名稱。我們通過單擊更新用戶名來批准。

我們要做的最后一個更改是更改密碼。為此,請轉到頁面:ost:8080/-/profile/password/edit並輸入臨時密碼和新密碼。我們通過單擊Save password批准更改

GitLab 運行器配置

要在 GitLab 中使用 GitLab 運行器,您需要對其進行配置。為了正確配置,我們需要從門戶復制的令牌。為此,請轉到地址:http://localhost:8080/admin/runners並單擊復制令牌按鈕。

在下一步中,它會轉到控制台並運行以下命令:

> docker exec -it gitlab-runner gitlab-runner register --url "http://gitlab-ce" --clone-url "http://gitlab-ce"

 

啟動后,會出現一個配置模塊。該模塊提供以下信息:

  • 輸入 GitLab 實例 URL:確認輸入的值(點擊回車)
  • 輸入注冊令牌:輸入之前復制的令牌。
  • 輸入跑步者的描述:輸入跑步者的名字,例如 docker-runner
  • 輸入跑步者的標簽:此處留空
  • 輸入執行者:在此處輸入 docker
  • 輸入默認的 Docker 鏡像:這里我們提供默認的 docker 鏡像,例如 maven: latest

正確配置后,我們應該看到確認Runner 注冊成功

除了基本配置外,我們還需要允許從 runner 啟動的容器訪問 GitLab 運行所在的虛擬網絡。為此,我們運行編輯器(例如 vi)

>  sudo vi gitlab/gitlab-runner/config.toml

 

然后我們在運行器配置的末尾添加新行:network_mode = “gitlab-network”

要檢查 runner 是否在 GitLab 級別可用,請轉到以下地址:http://localhost:8080/admin/runners

 

我們創建了我們的第一個存儲庫

設置好運行器后,我們可以創建我們的第一個存儲庫。為此,請轉到頁面: http://localhost:8080/projects/new並單擊Import project

Naastępnym ekranie wybieramy導入項目來自:來自 URL 的回購。Następnie podajemy w Git 存儲庫 URL地址:https ://github.com/czerniga/helloworld.git 。Na końcu zatwierdzamy klikając創建項目

在下一個屏幕上,選擇Import project from: Repo from URL然后我們提供 Git 存儲庫 URL 地址:https ://github.com/czerniga/helloworld.git 。最后,單擊 Create project 進行確認。

一段時間后,您應該將第一個存儲庫復制到您的 GitLab。

 

我們創建 CI/CD 管道

要為項目創建 CI/CD 管道,請單擊左側的主菜單CI/CD,然后單擊Editor屏幕上將出現一個創建 .gitlab-ci.yml 文件的選項,該文件將包含我們的管道定義。該文件將在 Git 存儲庫中創建。

在新屏幕上,我們可以看到我們的管道編輯器。在編輯器中,粘貼以下內容:

image: maven:latest stages: - build - test build-job: stage: build script: - echo "Compiling the code..." - mvn clean package - echo "Compile complete." artifacts: paths: - target test-job: stage: test dependencies: - build-job script: - ls -al - echo "Running tests" - java -cp target/helloworld-1.1.jar com.coveros.demo.helloworld.HelloWorld

上面的定義描述了 CI/CD 過程應該如何工作。最重要的元素是:

  • image:我們將用於構建項目的 docker 映像
  • 階段:我們的流程步驟列表
  • build-job:我們構建項目過程中的第一步。此外,我們保存工件以供下一步使用
  • test-job : 運行我們項目的第二步

粘貼我們的文件后,單擊Commit changes 確認更改

一旦獲得批准,GitLab 將啟動該過程。要檢查其結果,請轉到左側菜單中的CI/CD ->管道。在屏幕上,我們應該看到我們的第一個任務已經開始。

我們可以通過單擊待定按鈕或內部版本號#1來查看此任務的詳細信息

一段時間后,應該構建和測試任務。

如何使用 Docker Compose 安裝 GitLab如何使用 Docker Compose 安裝 GitLab

恭喜,您剛剛在 GitLab 中創建了您的第一個 CI/CD 作業!

停止容器

包含我們服務的容器是使用導致后台工作的開關啟動的。如果要停止門戶,請執行以下命令:

docker-compose down

 

概括

在本教程中,我展示了如何使用一個 GitLab 運行器運行 GitLab。此處給出的配置導致所有網站數據都保存在您的計算機/服務器上的目錄中。因此,當容器停止或移除時,數據不會被刪除。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM