쑥로그

빗버킷과 젠킨스 연동하고, 도커파일 빌드배포까지 본문

프로그래밍

빗버킷과 젠킨스 연동하고, 도커파일 빌드배포까지

SOOOOOK 2019. 8. 29. 21:23

기존에는 깃랩에 커밋하면 젠킨스가 빌드&배포하게 되어있는 흐름이었고, 다른 분께서 직접 구축까지 해놓으셨는데,

이번에 빗버킷을 쓰게 되면서 직접 구축을 해야하는 상황이 되었다.

빗버킷에 대한 이해와, 젠킨스와의 연동, 도커파일 실행과 배포까지 꼬박 4일이 걸렸다.

연동은 금방 끝났는데 도커가 의외의 복병이었다. 도커파일이 동작은 하는데 이미지가 원하는 데로 만들어지지 않아서 정말 애를 많이 먹었다.

 

목표 : 빗버킷에 소스 커밋 -> 젠킨스 실행 -> 도커 이미지 빌드 -> 도커허브에 푸쉬

 

과정 1. 빗버킷에서 소스파일 커밋 감지와 웹훅

 

빗버킷 웹훅 생성

 

빗버킷의 Repository settings > Post Webhooks  에서 웹 훅을 생성한다.

1. title은 임의로 설정한다.

2. URL은 본인의 젠킨스 url + /bitbucket-hook/ 을 추가한다. 반드시 뒤에 /는 붙인다.

3. 훅이 실행될 트리거를 설정해준다. 나는 코드가 커밋될 때 실행되어야하기 때문에 On push를 설정했다.

 

 

 

과정 2. 젠킨스 플러그인 설치

 

젠킨스 빗버킷 플러그인 설치

 

Jenkins > Jenkins 관리 > 플러그인 관리 에서 Bitbucket 플러그인을 설치한다.

 

 

 

과정 3. 구성 추가

 

젠킨스 구성

 

젠킨스에서 생성한 (빌드할) 아이템에서 구성 탭으로 들어가 소스 코드 관리에 Git을 선택해 로그인해준다.

1. Repository URL : 빗버킷에서 clone한 주소

2. Credentials : 빗버킷 로그인 정보

3. Branches to build : 빌드할 브랜치

4. Repository browser : bitbuckerweb 선택

5. URL : 웹훅을 받을 빗버킷 주소. 빗버킷 소스 url에 /browse/src를 추가해준다. 이부분때문에 애를 먹었다.. 

 

과정 4. 빌드 유발 추가

 

빌드 유발 구성 추가

 

빌드 유발을 Build when a change is pushed to BitBucket을 선택해준다.

 

과정 5. 도커 커맨드 실행

 

도커 커맨드 실행

 

이제 빌드 탭에 Send files or execute commands over SSH를 추가하여 커맨드를 작성해준다.

사실 여러 탭중에 Docker build and publish 나 execute docker command 가 있다. 딱 봐도 도커사용하려면 이게 필요할것 같은데 동작이 잘 되질 않아서 일단 커맨드를 직접 날렸다.

추가로, 로그인은 토큰으로 인증을 했지만, 보안 관련 문제가 발생한다. 따라서 그 부분도 수정이 필요하다.