iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0

今天要介紹的是 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 一樣,只有一點小差別。

大家掰~掰~


上一篇
Day 24 CI/CD 介紹
下一篇
Day 26 環境介紹
系列文
30天漫遊雲端之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言