GitLab版控已經非常好用, 但身為一位工程師
懶還要更懶
沒有使用CI/CD通常整合, 測試, 佈署等等都會落在人工處理
因此這些步驟可以使用GitLab CI/CD達成
機器能做的幹嘛給人做呢?
但要建置GitLab CI/CD前提條件必須先安裝GitLab-Runner
沒錯使用 Docker-Compose 基本的建置也都可以完成,但也要有些設定
version: "3"
services:
gitlab:
container_name: "gitlab"
environment:
DEBUG: "false"
GITLAB_PORT: 10080
GITLAB_SSH_PORT: 10022
GITLAB_SECRETS_DB_KEY_BASE: qcs-gitlab-app
GITLAB_SECRETS_OTP_KEY_BASE: qcs-gitlab-app
GITLAB_SECRETS_SECRET_KEY_BASE: qcs-gitlab-app
GITLAB_OMNIBUS_CONFIG: |
external_url http://127.0.0.1:10080
pages_external_url http://pages.example.io
gitlab_pages['enable'] = true
nginx['listen_port'] = 80
nginx['enable'] = true
image: gitlab/gitlab-ce:latest
links:
- redis:redisio
- postgresql:postgresql
ports:
- "10080:80"
restart: always
hostname: "127.0.0.1:10080"
postgresql:
environment:
DB_EXTENSION: pg_trgm
DB_NAME: gitlabhq_production
DB_PASS: password
DB_USER: gitlab
image: sameersbn/postgresql:9.6-2
restart: always
redis:
command:
- --loglevel warning
image: sameersbn/redis:latest
restart: always
runner:
image: gitlab/gitlab-runner:latest
container_name: "gitlab-runner"
restart: always
在 Docker-compose 中的環境設定 GITLAB_OMNIBUS_CONFIG 的參數
只有在啟動 Containers 才會強制設定
實際上進入機器中查看 Gitlab.rb 設定檔並不會異動,建議以下設定都開啟
gitlab_pages['enable'] = true nginx['enable'] = true
Docker-compose 建置完畢
接著就要註冊 GitLab-Runner
- 進入 GitLab-Runner
- 執行指令「gitlab-runner register」
- 按照註冊步驟輸入參數
輸入 GitLab IP or Domain
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com ) http://127.0.0.1:10080
輸入 GitLab Token
Please enter the gitlab-ci token for this runner xxxxxxx
輸入 Runner 描述
Please enter the gitlab-ci description for this runner 隨意輸入
輸入 Runner 標籤
Please enter the gitlab-ci tags for this runner (comma separated): 隨意輸入
輸入執行 Runner 要使用的程序,這邊使用 Docker
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell: docker
輸入執行 GitLab上的「.gitlab-ci.yml」所要執行的Docker Image
Please enter the Docker image (eg. ruby:2.1): alpine:latest
另外,如果 GitLab 有 SSL 驗證,需要將 GitLab 的金鑰在註冊Runner時候綁定
gitlab-runner register --tls-ca-file /my/path/gitlab/gitlab.pem