지난번 GitLab Project Runner는 단일 Project에서만 동작하였습니다.
- GitLab Project Runner using Docker (https://jeongchul.tistory.com/717)
Group
내에 여러 Project를 처리할 수 있는 Runner는 Group Runner입니다.
Group Runner를 Docker Container 기반으로 실행해보겠습니다.
GitLab Group Runner를 생성하기 위해서는 Group의 Owner Role
을 가지고 있어야합니다.
Tags의 경우 지정된 태그로만 Job을 생성합니다.
- Tag 설정 외에도 Job이 실행되려면 Run untagged jobs를 체크합니다.
Description을 작성하고 Create Runner 버튼을 클릭합니다.
이전 Project runner와 생성하는 방식은 동일합니다.
- 하기의 Access Token을 활용한 Command를 통해 GitLab Container 내부에서 register를 진행합니다.
Runner를 실행할 환경에서 다음의 명령어로 GitLab Runner를 실행합니다.
docker run -d --name gitlab-runner --restart always --privileged \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
Container로 접속해 gitlab-runner register 명령어로 등록을 진행합니다.
docker exec -it gitlab-runner /bin/bash
$ gitlab-runner register --url https://gitlab.com --token [YOUR_TOKEN]
등록을 마치고 /etc/gitlab-runner/config.toml에 들어가 다음의 설정을 진행합니다.
- privileged를 true로 두어 container build시에 dind 형태로 runner container에서 container를 생성할 수 있도록 권한을 부여합니다.
apt update
apt instsall vim -y
vi /etc/gitlab-runner/config.toml
---
[[runners]]
...
url = "https://gitlab.com"
...
executor = "docker"
[runners.custom_build_dir]
...
[runners.docker]
tls_verify = false
image = "golang"
privileged = true # <-------------------- privileged true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
network_mtu = 0
새로운 Group Runner가 등록되었습니다.
Group Runner를 여러개 등록하면 여러 Pipeline 실행 시에 각 Runner로 분배되어 parallel하게 Jobs들을 수행해나갑니다.
감사합니다.
'Git > GitLab' 카테고리의 다른 글
GitLab CI를 활용한 Harbor Registry로 Container Image Push (1) | 2024.08.31 |
---|---|
GitLab Runner Docker Build Daemon 2375 port issue (0) | 2024.07.24 |
GitLab Project Runner using Docker (0) | 2024.07.20 |
GitLab CI Container 이미지 빌드와 GitLab Registry (1) | 2024.07.08 |
GitLab CI Golang 배포 (0) | 2024.07.08 |