Gitlab CI/CD Runner 사용하기
2023년 12월 29일 금요일
4분 소요
0회
문제
gitlab의 ci/cd 기능을 이용하려면 먼저 gitlab-runner
를 등록해야 사용할 수 있다.
문제 해결
해당 글은 gitlab-ce 16.7버전 기준으로 작성되었습니다.
- gitlab에 접속한 뒤
Admin Area
에 들어간다. - 왼쪽의
CI/CD
>Runners
에 들어간다. - 상단 위쪽의 새로운 인스턴스 러너를 클릭한다.
Platform
을 선택한 뒤 원하는 내용을 채우고 맨 밑의러너 만들기
를 클릭한다.- 본인은 태그 없는 작업에서 실행할 수 있게 체크박스를 설정했다.
- 생성 완료 후 나타나는 명령어를 복사해둔다. (창을 나가면 다시 볼 수 없으므로 주의)
- 그 후
docker-compose
에runner
를 작성한다.
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
services:
gitlab_ce:
container_name: gitlab_ce
image: 'zengxs/gitlab:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
nginx['listen_port'] = 580
gitlab_rails['gitlab_shell_ssh_port'] = 522
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '580:580'
- '5443:443'
- '522:22'
volumes:
- '/home/hopoduck/docker/gitlab/config:/etc/gitlab'
- '/home/hopoduck/docker/gitlab/logs:/var/log/gitlab'
- '/home/hopoduck/docker/gitlab/data:/var/opt/gitlab'
- '/home/hopoduck/docker/gitlab/runner:/etc/gitlab-runner'
shm_size: '256m'
runner:
container_name: runner
image: 'gitlab/gitlab-runner:latest'
restart: always
volumes:
- '/home/hopoduck/docker/gitlab/runner:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock'
# extra_hosts:
# - 'gitlab.example.com:{ip}' # 추후 설명
docker compose up -d runner
로runner
를 실행한 뒤docker compose exec runner bash
로runner
컨테이너에 접속한다.- 5번에서 복사해 둔 명령어를
runner
에서 실행한다.
실행하면 gitlab에 등록되고, 설정에 따라 푸시나 태그가 달릴 때 작성한 ci/cd 스크립트가 runner
에서 실행된다.
문제: runner에서 gitlab 서버에 연결이 안됨
포트를 변경해서 그런지 내부 gitlab 서버로 연결이 되지 않아서 extra_hosts
를 사용해서 연결하게 했다.
yaml
1
2
extra_hosts:
- 'gitlab.example.com:{ip}'
이제 와서 생각난거지만 생성 후 적혀있는 명령어에서 --url https://gitlab.example.com
의 주소를 로컬 ip로 바꿨으면 연결이 잘 되었을 것 같다.
참고자료
Loading reactions