GitLab Runner 是自動化持續整合和持續交付(CI/CD)流程中的關鍵要素。在 GitLab CI/CD 環境中執行包括編譯程式碼、執行測試、建立容器映像等。在 GitLab Pipeline 中執行工作的程式稱為 GitLab Runner,它是一個獨立於 GitLab 應用程式的程式,可在本地主機或 Docker 容器中運行,並支援多種不同的平台。
以下是如何註冊、配置 GitLab Runner的步驟:
1.下載和安裝 GitLab Runner: (Linux Ubuntu)
# 下載 GitLab Runner 套件
curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb
# 安裝 GitLab Runner
sudo dpkg -i gitlab-runner_amd64.deb
2.啟動 GitLab Runner 服務:
sudo systemctl start gitlab-runner
3.設置 GitLab Runner 啟動時自動啟動:
sudo systemctl enable gitlab-runner
4.註冊 GitLab Runner 到您的 GitLab 服務器:
sudo gitlab-runner register
接下來,根據提示提供所需的信息:
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/)
Please enter the gitlab-ci token for this runner
Please enter the gitlab-ci description for this runner
Please enter any tags for this runner (comma separated)
Please enter the executor: docker, shell, virtualbox, docker-ssh, parallels, docker+machine, kubernetes
Please enter the default Docker image (e.g. ruby:2.6)
完成這些步驟後,GitLab Runner 將使用提供的信息註冊到 GitLab 服務器。可以根據自己的需求調整這些值,確保 Runner 正確註冊並配置。
當 GitLab Runner 成功註冊到您的 GitLab 服務器後,可以根據專案和 CI/CD需求,將 .gitlab-ci.yml 文件添加到您的專案中,定義 CI/CD 作業,並讓 GitLab Runner 自動執行這些作業。
GitLab Runner 將根據 .gitlab-ci.yml 文件中的定義,自動執行 CI/CD 作業並根據配置文件中的設置執行作業。
GitLab CI/CD 在每次有新的提交或觸發條件達成時,GitLab 將使用註冊的 Runner 運行相關的作業。Runner 會根據配置和 .gitlab-ci.yml 中的指示來執行作業,然後將結果報告回 GitLab 服務器。
以下是 .gitlab-ci.yml 和Runner 配置文件的一個簡單的範例;
#.gitlab-ci.yml
stages:
- build
- test
- deploy
variables:
DATABASE_URL: "postgres://user:password@dbhost:5432/database"
build_job:
stage: build
script:
- echo "開始建立應用程式"
- npm install
- npm run build
test_job:
stage: test
script:
- echo "執行測試"
- npm test
deploy_job:
stage: deploy
script:
- echo "部署應用程式到生產環境"
- ./deploy.sh
only:
- master
[[runners]]
name = "My Runner"
url = "https://gitlab.com/"
token = "YOUR-RUNNER-TOKEN"
executor = "docker"
[runners.docker]
tls_verify = false
image = "docker-image-name:tag"
privileged = false
disable_cache = false
[runners.cache]
Type = "s3"
Shared = true
[runners.cache.s3]
ServerAddress = "s3.amazonaws.com"
AccessKey = "your-s3-access-key"
SecretKey = "your-s3-secret-key"
BucketName = "your-s3-bucket-name"
name:GitLab Runner 的名稱。
url:GitLab 服務器的 URL。
token:Runner 註冊令牌。
executor:執行器,這裡使用了 Docker。
image:Docker 映像名稱和標籤,用於執行作業。
privileged:是否以特權模式運行容器,通常設為 false。
disable_cache:是否禁用快取,通常設為 false。
cache:用於設置快取的選項,這個示例中使用了 Amazon S3 作為快取存儲。
請根據專案需求和 CI/CD 需求,進一步調整配置文件中的選項。您的 GitLab Runner 將根據 .gitlab-ci.yml 文件中的定義,自動執行 CI/CD 作業並根據配置文件中的設置執行作業。