GitLab 是一個用於版本控制、專案管理和持續整合的開源軟體平臺,它提供了一整套工具,能夠幫助團隊高效地協作開發。而 GitLab Runner 則是 GitLab CI/CD 的執行者,用於執行持續整合和持續交付任務。
在本文中,我們將使用 Docker Compose 來快速部署 GitLab 和 GitLab Runner。Docker Compose 是一個用於定義和執行多容器 Docker 應用程式的工具,它透過一個 YAML 檔案來配置服務的執行方式。
編寫 Docker Compose 檔案
首先,我們需要建立一個名為 docker-compose.yml
的檔案,並將以下內容新增到檔案中:
version: '3.8'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
# 對外訪問gitlab地址,可以使用本機IP
external_url 'http://192.168.184.200:9080'
gitlab_rails['gitlab_shell_ssh_port'] = 9022
ports:
- '9080:9080' # 注意宿主機和容器內部的埠要一致,否則external_url無法訪問
- '9443:443'
- '9022:22'
volumes:
- '/opt/store/gitlab/config:/etc/gitlab'
- '/opt/store/gitlab/logs:/var/log/gitlab'
- '/opt/store/gitlab/data:/var/opt/gitlab'
shm_size: '1g'
gitlab-runner:
image: 'gitlab/gitlab-runner:latest'
container_name: "gitlab-runner"
restart: always
volumes:
- '/opt/store/gitlab-runner:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock' #這個掛載是將宿主機上的docker socket掛載到了容器內,這樣容器內執行的docker命令會被宿主機docker daemon最終執行
在這個 Docker Compose 檔案中,我們定義了兩個服務:GitLab 和 GitLab Runner。GitLab 服務使用 gitlab/gitlab-ce:latest
映象,而 GitLab Runner 使用 gitlab/gitlab-runner:latest
映象。我們設定了各種環境變數、埠對映和卷掛載,以確保 GitLab 和 GitLab Runner 正常執行,並且能夠持久化資料。
啟動服務
完成 Docker Compose 檔案的編寫後,我們可以使用以下命令來啟動服務:
docker-compose up -d
這將會啟動 GitLab 和 GitLab Runner 服務,並且以後臺模式執行。你可以使用 docker ps
命令來驗證服務是否已經成功啟動。
訪問 GitLab
一旦服務啟動成功,就可以透過瀏覽器訪問 GitLab。在本例中,我們將 GitLab 設定為在 http://192.168.184.200:9080
地址上執行。只需在瀏覽器中輸入該地址,即可訪問 GitLab 介面。
第一次登入時,預設使用者名稱是root,其初始密碼需要透過以下方式獲取:
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
登入成功之後,需要更改初始密碼,畢竟那一串初始密碼根本記不住(_)
總結
透過Docker Compose的方式部署GitLab非常方便快捷,下一篇將介紹GitLab自帶的CI/CD功能如何使用。