紀錄使用Project Access Token 整合Gitlab 與 Jenkins 的 CI/CD
由於之後要把 gitlab 上面的 code 搬回公司但是目前自動build code 是使用 gitlab 提供的 runner來跑(畢竟花錢的很多東西都不用自己建)。 所以先用用 docker 在自己的電腦裡面架個 gitlab-ee 跟 Jenkins 來試試看能不能在 merge request 之後自動拉 code 跑 build.
環境
OS : Zorin OS 16 ( Ubuntu 20.04 core)
CPU : AMD Ryzen 7 5700u
Mem: 32 GB
Docker Engine 與 Docker Compose 安裝
這邊就按照官網的安裝方式選擇Ubuntu 的作業系統來安裝就可以了。
- Docker Engine 安裝方式~ Ubuntu。
- Docker Compose 安裝方式 ~ Docker Compose。
Gitlab-ee Image
Gitlab-ee 這邊我採用 Docker Compose 撰寫 yml file 然後官方有建議要另外在 Local 給一個資料夾讓Gitlab 可以存Logs, Configuration 與 Data 因為Docker 本身是無法存資料的。由於我只是測試用所以我直接在我的Home 裡面建一個 Misc / gitlab 資料夾來給Gitlab 使用。
- Gitlab docker 官網安裝說明。
Gitlab 存放資料的資料夾名稱
version: '3.9'
services:
gitlab:
image: 'gitlab/gitlab-ee:latest'
tty: true
ports:
- '443:443' // The port redirection
- '8000:80' // 對外用 8000 port 轉成docker裡面的 80 port.
- '22:22'
container_name: gitlab
hostname: 'gitlab.clover.com' // 我自己取的 hostname 你可以改成你自己的
restart: 'no' // 不要每次開機就自動運行 Gitlab Docker
volumes:
- /home/cloverhsc/Misc/gitlab/config:/etc/gitlab // 我Local 要給 Gitlab docker存資料的位置
- /home/cloverhsc/Misc/gitlab/logs:/var/log/gitlab // 我Local 要給 Gitlab docker存資料的位置
- /home/cloverhsc/Misc/gitlab/data:/var/opt/gitlab // 我Local 要給 Gitlab docker存資料的位置
PS : hostname 那自己去修改 /etc/hosts 的檔案加入自己想取的 hostname 與對應的ip ,否則一般預設只會有 localhost 這個domain name 會被 Browser 解析到 127.0.0.1 。
version: '3.9'
services:
jenkins:
image: 'jenkins/jenkins:lts'
tty: true
ports:
- '8080:8080' // 把local 的8080對應到 image 裡面的 8080 port
- '50000:50000' // 把local 的50000對應到 image 裡面的 50000 port
container_name: 'jenkins'
hostname: 'jenkins.clover.com' // 我自己設定的hostname 要能用記得去修改 /etc/hosts
restart: 'no' // 一樣不要每次開機就自動運行 Jenkins
volumes:
- /home/cloverhsc/Misc/jenkins:/var/jenkins_home // 我 Local 要給 Jenkins 存資料的位置
一樣把上述的存在docker-compose.yml 然後運行 docker-compose up (不要使用 -d 因為等等會秀第一次登入的密碼)待執行一段時間後會看到一串第一次登入需要使用的密碼。這邊我是選擇 LTS的 Nodejs 版本(14.x) 你也可以使用最新的 nodejs version (16.x)來當作 Jenkins的套件,當然這個套件本身可以安裝多個不同版本的 nodejs 在 Jenkins 裡面讓不同的 task 用不同版本的 Nodejs。
這樣大致上就把 Gitlab 與 Jenkins 裝起來了。
之後可以使用 docker ps 去看 image 的運行狀況或是用 docker start 、 docker stop 停止服務了。
留言
張貼留言