반응형
이번에 해볼 것은 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이 돌아갑니다.
확인 결과 잘 실행되었습니다.

이상 입니다.
반응형
'Pipeline' 카테고리의 다른 글
Github Action 이란 ? (0) | 2024.12.19 |
---|---|
주먹구구식 Gradle 빌드/배포 자동화 (Gitlab-runner, ArgoCD) (1) | 2024.08.13 |
Gitlab-runner 사용해서 Gradle 빌드 해보기 (0) | 2024.07.25 |
Jenkins Pipeline을 사용하여 이미지 빌드 및 푸시 해보기 (Github, Harbor) (1) | 2024.05.09 |
Helm을 사용하여 Jenkins 설치해보기 (1) | 2024.04.19 |