Git

Gitlab runner 사용해서 CI 해보기

황동리 2024. 6. 14. 16:07
반응형

이번에 해볼 것은 Gitlab runner 사용해서 docker 이미지 빌드하고 harbor 레지스트리에 추가 해보도록 하겠습니다.


config.toml 파일 수정

우선 Gitlab runner에서 docker 명령어를 사용하기 위해서 /etc/gitlab-runner/config.toml 파일을 수정해줍니다.

[[ruuners]]
  executor = "shell" => "docker"
  [runners.docker]
  tls_verify = false
  image = "docker:24.0.5"
  privilieged = true

 

config.toml 파일을 수정해준 다음 Gitlab-runner를 재시작 해줍니다.
(저 같은 경우에는 docker 컨테이너로 gitlab-runner 서비스를 실행해주었기 때문에, 컨테이너 안에 들어가서 명령을 실행 하였습니다.)

# gitlab-runner restart

이미지 빌드

이제 docker image를 생성하기 위해, "Dockerfile 및 이미지 생성을 위한 파일들" gitlab repo에 업로드 해줍니다.

- Dockerfile 내용 - 

FROM ubuntu/bind9:9.18-22.04_beta

USER root

COPY ./configuration /etc/bind
COPY ./lib/bind /var/named

RUN chmod 777 /etc/bind
RUN chmod 777 /var/named

EXPOSE 53/udp

CMD ["/usr/sbin/named", "-g"]

 

이제 .gitlab-ci.yml 내용 작성 후 이미지 빌드를 해보겠습니다.

- .gitlab-ci.yml 내용 -

stages:			# 파이프라인의 단계들을 정의
  - docker

docker_build:	
  variables:
    DOCKER_HOST: tcp://docker:2375		# Docker 데몬에 연결할 때 사용하는 주소
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: ""				# TLS 인증서 비활성화

  image: docker:latest		
  stage: docker							
  services:
    - name: docker:24.0.5-dind
      alias: docker
      command: ["--tls=false", "--insecure-registry=<이미지 레지스트리 주소>"]
  before_script:
    - docker login <이미지 레지스트리 주소> -u "<ID>" -p "<PW>"
  script:
    - docker build -t <원하는 이미지 이름> .
    - docker push <위에서 정의한 이미지 이름>

 

.gitlab-ci.yml 파일을 repo에 푸쉬해주면 Pipeline이 돌아갑니다.

확인 결과 잘 실행되었습니다.

 

이상 입니다.

반응형