Simple gitlab CI/CD with docker
年初挑了bitbucket + jenkins作為docker內部簡易自動化建置與部署的設置 那時候由於jenkins是內網的服務,bitbucket沒辦法送webhook進來,無法實作pipeline 自建bitbucket也是可以,但有沒有一個服務是一條龍做完的呢?就是gitlab 由於gitlab community edition (簡稱gitlab-ce) 跟 gitlab-runner免費授權的緣故 成為現在許多企業內部專案管理與自動化建置、測試與部署的首選 以下會以 gitlab-ce + gitlab-runner 兩個docker image為基底,建置兩個容器服務 並拿 Angular 、免費網域靜態檔案放置服務 Surge 當實作目標,走過一遍gitlab CI/CD 整個架構圖如下: gitlab-ce 為整個專案程式碼管理服務與pipeline主控台 gitlab-runner 則是當pipeline啟動時,會根據gitlab特有的 gitlab-ci.yml 執行CI/CD gitlab-ce 每個專案會有一組自己的token,用以註冊gitlab-runner gitlab-runner註冊時,可以選擇執行方式(executor),我們選用docker gitlab-runner會另外開幾個container來pull code與執行CI/CD,最後push到surge上 前置作業: (1). 註冊好surge的帳戶與自定義的網域名稱 (2). 確認docker的記憶體要4gb ram以上 (開發環境為Docker for Mac) (3). gitlabDocker 目錄,主要放置 docker-compose.yml (4). testCICD 目錄,主要放置 Angular 與 gitlab-ci.yml (5). gitlab-ce版本:10.6.1 主要步驟有四: 撰寫docker-compose file,確認兩個服務之間可以正常連線 設定User、Group、Project,模擬一般專案合作使用狀況 設定 gitlab-ce pipeline,註冊runner Push Code & auto-run pipeline 除了2.以外,