전에 포스팅에 이어서 젠킨슨을 이용한 job 을 만드려고 한다.
일단 서버가 중단이 되면 안됨으로 중단에 무중단으로 배포 job 을 만드려고 한다.
프로젝트의 환경을 spring boot, gradle, docker, git 을 사용을 하기 때문에
나열된 환경으로 세팅 하는 법을 포스팅 하려고 한다.
젠킨슨 홈에 들어가면 일단 좌측 메뉴 바에서 새로운 item
이라는 메뉴가 있다.
그러면 다음 화면으로 나오는데 여러가지 항목이 나온다
첫번째 박스는 job name 을 적어주면 되고
두번째 박스는 freestyle project 를 눌러 주면된다.
다른 항목도 있지만 첫번쨰 젠킨슨 이기 때문에 프리 스타일로 만들어 준다.
general 탭에서 설명란에
job 에 대한 설명을 적어준다.
git project 항목을 선택을 해준 후 job 으로 만들 github uri 을 작성을 해준다.
다음으로 소스 관리라는 항목이 나오는데
git 을 클릭을 해준 후 위와 같이 git uri 를 적어준다.
credentials 의 경우 private 상황일때 사용을 한다.
하지만 예제 깃 주소는 public 이기 때문에 사용을 하지 않았다.
브랜치 빌드 에서 master 로 선택을 해준다.
만약 다른 브랜치를 사용을 하고 싶다면 작성을 해주시면 됩니다.
빌드 유발 에서는 github hook 을 사용을 하려고 한다.
github hook trigger for gitscm polling 이라는 항목이 있는데
선택을 해주면 된다.
이 job 의 경우 gradle 로 빌드가 되기 때문에
invoke gradle script 를 선택을 해준다.
use gradle wrapper 는 gradle wrapper 가 프로젝트에 있기 때문에 선택을 해준다.
그리고 wrapper location 에는 ${WORKSPACE} 을 작성을 해준다.
workspace 의 경우 job의 root 이다.
take 의경우 clean 후 bootJar 를 해준다.
다음으로는 docker 로 빌드를 해줄 것이다.
docker build 는 도커의 dockerfile 빌드 명령어로
dockerfile 를 빌드를 해준다.
${JOB_NAME} 의 경우 우리가 시작할때 만들어주는 명칭을 의미힌다.
docker을 이용한 jar 관련된 페이지입니다. 참고 하시면 될거 같습니다.
다음으로는 기존에 docker container 을 멈추고 지우는 스크립트 이다
아래와 같이 사용을 하는데 | true 를 넣어주는 이유의 경우 실패 하더라도 넘어가기 위함이다.
docker stop [job_name] | ture && docker rm [job_naem] | ture
그리고 이제 가비지한 이미지 들이 쌓이는데 none 이미지 이다.
일단은 버전 관리 없이 latest 라고 최신 버전으로 만으로 관리가 되기 때문에
전에 사용하던 이미지들을 지워 주어야한다.
docker images prune -f
위의 도커 커맨드를 가지고 실행을 시켜주면된다.
github hook 필요 하지 않는다면 세팅을 안해줘도 무방하다.
하지만 github hook 의 경우 위의 job 의 브랜치를 세팅을 해주면
브랜치에 push 를 해주면 hook 발생이 되서 job이 자동으로 빌드를 해준다.
시작을 하기위해서는 job 의 세팅된 깃 레파지토리로 이동을 해준다.
깃 레파지토리에서 setting 버튼을 클릭을 해준다.
깃 세팅 페이지에 들어가서 webhooks 라고 메뉴가 나오는데
그 페이지로 이동을 하면된다.
web hooks 페이지에서 우측 버튼을 클릭한후에
project path 를 설정을 해주면 끝이 난다.
path 의 경오 http://젠킨슨 주소:젠킨스 포트/github-webhook/
이다
여기서 만약 git hook 주소를 잘못 적어주면 303 error 가 발생이 되는데
대부분이 경우 주소 마지막에 /
를 넣어주지 않고 있어서 발생이된다.
에러가 발생이 된다면 일단 주소를 한번 확인 해주길 바란다.