이번에 진행 중인 프로젝트는 도커로 배포할 예정이라 내장된 CI/CD를 사용하고, Runner를 통해 이미지를 만들어줬어야 했습니다.
Runner가 docker 명령어를 사용할 수 있게 하려면 약간 건드려줘야 합니다.
예제로 .NET Core를 사용하였습니다.
SSH 접속
$ ssh -p port user@url
Runner 컨테이너 생성
$ sudo docker run -d \
--name [컨테이너명] \
--restart always \
--volume /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
Runner 컨테이너 bash에 접속
$ sudo docker exec -it [컨테이너명] bash
Runner 등록
$ gitlab-runner register -n \
--url "[url]" \
--registration-token "[토큰]" \
--description "설명" \
--executor docker \
--docker-image "docker:18.09.8" \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock
어디에 나와있는 토큰을 사용할 것인지에 따라 러너를 사용할 수 있는 범위가 달라집니다.
- 어드민 페이지에 나와있는 토큰으로 등록시 전역
- 그룹 페이지에 나와있는 토큰으로 등록시 그룹에 종속됨(해당 그룹 프로젝트만 사용가능)
- 특정 프로젝트에 나와있는 토큰으로 등록시 프로젝트에 종속됨(해당 프로젝트만 사용 가능)
현재는 테스트목적이니 어드민 페이지에 나와있는 토큰으로 등록합시다.
테스트를 위한 프로젝트 추가
https://github.com/zxc010613/build-dockerfile-using-runner-in-gitlab 프로젝트를 클론하고, 리모트 url을 변경 후 푸시해줍시다.
$ git clone https://github.com/zxc010613/build-dockerfile-using-runner-in-gitlab.git
$ cd build-dockerfile-using-runner-in-gitlab
$ git remote set-url origin [gitlab-project]
$ git push origin master
CI/CD Pipelines에서 확인하시면 됩니다.
댓글