본문 바로가기

리눅스

[리눅스] 도커 컨테이너로 gitlab-runner 실행하는 방법

728x90

도커 컨테이너로 gitlab-runner 실행하는 방법

docker-compose로 gitlab-runner 컨테이너 실행

docker-compose 편집

$ vim docker-compose.yml
version: '3'
services:
  gitlab-runner:
    image: 'gitlab/gitlab-runner:latest'
    restart: unless-stopped
    container_name: gitlab-runner
    hostname: gitlab-runner
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock
      - ./config:/etc/gitlab-runner
$ docker-compose up -d

gitlab 사이트(설정 > CI/CD > Runners)

- 러너 토큰

리너에 프로젝트 등록하기(gitlab-runner 등록)

docker-compose exec -T gitlab-runner gitlab-runner register

- GitLab 인스턴스 URL(예: https://gitlab.com/)을 입력합니다.

https://gitlab.scbyun.com/ 

- 등록 토큰 입력: 

hLShZhNX82ND23JysXKV

- 러너에 대한 설명을 입력합니다.

[gitlab-runner]: sangchul-runner

- 리너에 대한 태그 입력(쉼표로 구분):

sangchul.kr,blog

- 실행 프로그램을 입력하십시오:

docker

- 기본 도커 이미지(예: ruby:2.6)를 입력합니다.

ruby:2.6

러너가 성공적으로 등록되었습니다. 자유롭게 시작할 수 있지만 이미 실행 중인 경우 구성이 자동으로 다시 로드되어야 합니다!

컨테이너 이름 확인

$ docker-compose ps
    Name                   Command               State   Ports
--------------------------------------------------------------
gitlab-runner   /usr/bin/dumb-init /entryp ...   Up

대화식 모드로 등록

docker-compose exec -T gitlab-runner gitlab-runner register

$ docker-compose exec -T gitlab-runner gitlab-runner register
Runtime platform                                    arch=amd64 os=linux pid=17 revision=4b9e985a version=14.4.0
Running in system-mode.

Enter the GitLab instance URL (for example, https://gitlab.com/):
https://gitlab.scbyun.com/
Enter the registration token:
hLShZhNX82ND23JysXKV
Enter a description for the runner:
[gitlab-runner]: sangchul-runner
Enter tags for the runner (comma-separated):
sangchul.kr,blog
Registering runner... succeeded                     runner=uygrmrr1
Enter an executor: docker, docker-ssh, parallels, ssh, virtualbox, docker+machine, custom, shell, docker-ssh+machine, kubernetes:
docker
Enter the default Docker image (for example, ruby:2.6):
ruby:2.6
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

비대화식 모드로 등록

docker-compose exec gitlab-runner gitlab-runner register -n \
> --url https://gitlab.scbyun.com/ \
> --registration-token hLShZhNX82ND23JysXKV \
> --description sangchul-runner \
> --executor docker \

> --tag-list "sangchul-runner" \ 
> --docker-image docker:latest \

> --docker-volumes /var/run/docker.sock:/var/run/docker.sock

$ docker-compose exec gitlab-runner gitlab-runner register -n \
> --url https://gitlab.scbyun.com/ \
> --registration-token hLShZhNX82ND23JysXKV \
> --description sangchul-runner \
> --executor docker \
> --tag-list "sangchul-runner" \
> --docker-image docker:latest \
> --docker-volumes /var/run/docker.sock:/var/run/docker.sock
Runtime platform                                    arch=amd64 os=linux pid=58 revision=f0a95a76 version=14.5.0
Running in system-mode.                            
                                                   
Registering runner... succeeded                     runner=uygrmrr1
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

gitlab 사이트(설정 > CI/CD > Runners)

- 사용 가능한 지정 리너

gitlab 사이트(설정 > CI/CD > Runners > 러너(gitlab-runner) > 편집)

728x90
  • docker-in-docker 모드
    docker-compose exec gitlab-runner gitlab-runner register -n \
    --url https://gitlab.scbyun.com/ \
    --registration-token hLShZhNX82ND23JysXKV \
    --description sangchul-runner \
    --executor docker \
    --tag-list "sangchul-runner" \
    --docker-image "gitlab/dind:latest \
    --docker-privileged