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