今天要介紹的是 CI/CD 的工具之一 GitLab 。
首先先來說明一下為什麼是用 GitLab ,而不是其他 CI/CD 工具。
因為在我接觸 CI/CD 之前,原本我是想要建立自己的一個程式碼管理的平台,就是 GitHub 的東東,那時我只用過三個這樣的平台, GitHub 、 GitLab 跟 Bitbucket 。而在這三個中,能夠自己架設的只有 GitLab (好像是這樣,太久了有點忘了),因此我就先使用了 GitLab 架設屬於自己的平台。
然後在設定的時候,突然看到一個很酷的東西,那就是 CI/CD ,我就開始用各種方式去玩體驗這是什麼,因此 GitLab 就變成我常用的一個 CI/CD 的工具了。
說了這麼多,那我們就快點來把它架設起來吧!因為本人的荷包一直都是處於營養不良的狀態,因此這邊使用 Docker 來建立吧。
首先要先設定環境變數(各位可以設在任意位置)。
# Linux
export GITLAB_HOME="$HOME/gitlab"
接著我們先在 /etc/hosts
設定一個假的域名,等等會用到。
127.0.0.1 gitlab.example.com
然後我們使用 Docker-Compose 來啟動。
docker-compose.yaml
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ee:latest'
container_name: gitlab-ee
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG .: |
external_url 'http://gitlab.example.com' # 剛剛的賈域名
GITLAB_ROOT_PASSWORD: 'rootroot' # 管理者的密碼
ports:
- '80:80'
- '443:443'
- '22:22'
- '587:587'
volumes:
- '$GITLAB_HOME/ee/config:/etc/gitlab'
- '$GITLAB_HOME/ee/logs:/var/log/gitlab'
- '$GITLAB_HOME/ee/data:/var/opt/gitlab'
shm_size: '256m'
networks:
- net
runner:
image: 'gitlab/gitlab-runner:latest'
container_name: gitlab-runner
restart: always
depends_on:
- web
volumes:
- '$GITLAB_HOME/runner/gitlab-runner:/etc/gitlab-runner'
- '$GITLAB_HOME/runner/docker.sock:/var/run/docker.sock'
networks:
- net
networks:
net:
name: gitlabnet
driver: bridge
這邊根據我的經驗,正常啟動大概需要花 5~10 分鐘,因此各位可以起來活動一下筋骨。
看到上面這個意思是快好了,需要再等一下
看到這個代表可以登入了,可以使用 Username:root Password:rootroot
登入。
那麼就先到這邊,各位可以先進去逛一下,基本上跟 GitLab 一樣,只有一點小差別。
大家掰~掰~