首頁>技術>

準備好docker伺服器

現在用它有點上癮,裝啥元件直接用映象,不用自己下載各種依賴包,依賴庫,賊爽!docker就是幹這的,將你從繁瑣的環境搭建和問題中解脫出來,專心於架構和業務!

準備好harbor私有映象倉庫

下載harbor離線安裝包,解壓後有docker-compose.yml,直接用docker-compose安裝,不要不要的。

安裝gitlab

docker run gitlab-ce社群版。配置略過......記得把gitlab配置和data目錄對映到宿主機目錄,避免因為容器重啟或銷燬導致資料丟失。

新建前後端專案重點來了,透過Gitlab-runner執行專案CI/CD,自動編譯,自動構建,自動測試,自動部署,一條龍服務

gitlab有自己的cicd元件gitlab-runner,沒有咋辦,docker run gitlab-runner即可。

Gitlab-runner與專案相關,需要在專案根路徑編寫指令碼檔案.gitlab-ci.yml。

可以在專案頁面->設定->CICD->runner,獲取runner註冊時需要的token和gitlab-url。

然後docker exec -it <runner容器id> gitlab-runner register註冊當前專案,主要關注tags和runner執行方式。Tags可以並行運行同一專案同一tag對應的任務,怎麼並行呢?假如你針對同一tag設定了多個gitlab-runner執行器。

Runner可以選擇shell或docker等執行。

一個.gitlab-ci.yml中可以透過tag來實現多個runner配合實現一整套devops流程,如編譯用docker,部署用shell等。

gitlab-runner註冊用到的引數

docker exec -it gitlab-runner gitlab-runner register# 輸入 GitLab 地址Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):http://xxxx:8001/# 輸入 GitLab TokenPlease enter the gitlab-ci token for this runner:1Lxq_f1NRfCfeNbE5WRh# 輸入 Runner 的說明Please enter the gitlab-ci description for this runner:可以為空# 設定 Tag,可以用於指定在構建規定的 tag 時觸發 ciPlease enter the gitlab-ci tags for this runner (comma separated):deploy# 這裡選擇 true ,可以用於程式碼上傳後直接執行Whether to run untagged builds [true/false]:true# 這裡選擇 false,可以直接回車,預設為 falseWhether to lock Runner to current project [true/false]:false# 選擇 runner 執行器,這裡我們選擇的是 shellPlease enter the executor: virtualbox, docker+machine, parallels, shell, ssh,   docker-ssh+machine, kubernetes, docker, docker-ssh:shell
java後端專案構建指令碼

編譯映象用到了docker in docker容器,需要新註冊一個gitlab-runner,基礎映象為docker。

當然專案中得增加Dockerfile用來生成映象。

#編譯映象,用當前路徑下的Dockerfiledocker build -t app:20210204 ./ #重新命名映象docker tag app:20210204 192.168.0.1:8011/app:20210204#推送映象到私有倉庫harbor中docker push 192.168.0.1:8011/my/app:20210204
樣例:.gitlab-ci.yml #基礎映象包括maven和jdk8image: maven:3-jdk-8before_script:    - echo "開始打包"test:  stage: test  script:     - env    - ls -l /usr/share/maven/conf#開始編譯專案    - mvn clean installtags:  - dev

程式碼提交後,自動觸發構建過程,全過程透明可見!

流水線

單步任務執行情況

vue前端專案自動構建指令碼
#如果是內網的話,需要設定外網代理地址- cnpm config set proxy http://test:test@xxxx:808- cnpm config set https-proxy http://test:test@xxxx:808#設定npm國內代理,加快構建速度- cnpm config set registry https://registry.npm.taobao.org -g- cnpm config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g- cnpm install#cache指令將之前下載的node_modules快取起來,加快vue專案構建速度#構件物多階段共享機制:#可以透過artifacts指令,將構建過程中的資料夾上傳到gitlab伺服器,方便各步驟之間共享檔案

快取和構件物

高階話題,Docker與shell混合執行構建和部署

Gitlab-runner執行時會有一個gitlab-runner使用者來執行任務,所以設定ssh時需要,

su – gitlab-runner,然後生成sshkey。

可以定義兩個runner,一個執行到docker中進行編譯打包,一個執行到shell中,進行部署,需要提前配置ssh免密登陸或者ssh_key,以便自動登入到遠端主機進行後續操作。

Gitlab-runner併發數設定

~/gitlab-runner/config/config.toml

#併發數設定

concurrent = 2

至此,gitlab中CI/CD流程已經建立起來。

專案增加webhook,推送釘釘群訊息,自動獲取專案動態訊息

釘釘機器人太好用了

釘釘機器人配置可見上篇文章

13
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • PHP Laravel框架使用者許可權管理,精確至按鈕級(詳細)