[Jenkins] GitOps CI 구축(Docker in Docker) [1]

전우석·2023년 1월 30일
0
post-thumbnail

docker in docker

AWS 프리티어 기간이 종료되어 docker를 사용해 로컬에서 CI/CD 구축을 진행하려한다.
wsl, docker desktop을 활용해서 Jenkins 파이프라인 구축 진행중 Jenkins를 작동시키는 Container에 docker 실행이 안돼서 Image build과정에서 실패가 발생하였다.
그래서 찾아본 방법인 Docker in Docekr 방식을 사용하여 진행했다.

WorkFlow

Git, Jeknins, Docker, K8s, ArgoCd를 사용하여 CI/CD 구축을 진행할것이다.

Window 환경이므로 wsl을 사용하여 진행할 것이다.

CI 구축

위의 docker in docker 링크를 통해 Jeknins 이미지 생성 및 컨테이너를 실행 시킨다.

Docker plugin 설치

Jeknins 관리 -> 플러그인 관리 페이지에서 Docker, Docker Pipeline Plugin 설치

Jeknins Credential 설정

Docker, Git 연동을 위한 Credential 설정
Username with Password Git, Docker 모두 토큰 발행이 필요하다.
Username은 Git, Docker 계정으로 작성 후 발행받은 토큰을 Password로 설정 Docker의 경우 ID는 Jeknins 파일에서 사용할 변수로 작성한다. (여기서는 dockerhub라 설정)

Job 생성 및 실행

Job 생성

Pipeline 선택 후 Pipelin 섹션에서 Pipeline script from scm 선택한다.
repo URL과 이전에 생성한 git Credential 선택 후 branch 선택 및 사용한 script 파일 이름작성을 진행

실행

정상적으로 dockerhub에 접속해 이미지 push까지 완료되었다.


마무리

AWS를 사용해서 구축했을 당시는 고정ip를 발급받아 git webhook을 진행했다. 현재 localhost를 사용하므로 기존의 방식으로 webhook이 안되는것을 확인했다. 포트포워딩이나 다른 방식을 사용해서 진행해볼 계획이다.

다음글에는 배포용 repo에 docker 이미지 최신화하는 단계부터 작성할 계획이다.


참고자료

[Setting | Docker] jenkins 설치 내부에서 docker 실행
도커 컨테이너 안에서 도커 실행하기(Docker in Docker, Docker Out of Docker)

0개의 댓글