Spring + Jenkins
Created Time: December 17, 2022 11:34 PM
Last Edited Time: December 23, 2022 5:42 PM
References: https://blog.nachal.com/1633
왜?
특정 회사 서류통과후, 과제가 CI-CD관리하는 젠킨스 + gradle+ git(버전관리) 스펙을 요구하는 과제를 구현하게됨.
젠킨스 구현 방법
Spring에서의 설정 - build.gradle
- @SpringApplication이 달려있는 파일 위치 적기
- 추후 젠킨스에서 gradle로 build 시 사용됨.
1 | bootJar{ |
젠킨스 설치 전 스펙 및 준비사항
- aws ec2 프리티어
- ubuntu 20.04
- 램 1기가, 하트 용량 8기가이므로 반드시 스왑해줘야함.
- 8090포트로 접속 목표
- 보안 그룹에 ssh, 8080,8090포트 등 열어두기
- ec2에 java 11 버전 설치
젠킨스 설치
1 | sudo apt-get update // apt 업뎃 |
젠킨스 포트 변경
case1
sudo vi /etc/default/jenkins
- HTTP_PORT값 8090으로 변경
case2
1 | sudo chmod 777 /usr/lib/systemd/system/jenkins.service |
- vi 시 HTTP_PORT값 8090으로 변경
마무리
변경 재시작: sudo service jenkins restart
상태확인: sudo service jenkins status
젠킨스 계정 설정 및 설정
해당주소: 8090으로 접속후 계정 설정
jenkins 관리 → git plugin 설정, ssh 플러그인 설치, gradle 설치되어있는지확인
jenkins 관리 →
새로운 아이템(프로젝트 등록)
- 소스 코드 관리 등록
- branch는 master → main으로 바꾸기
- 해당 프로젝트 gradle 빌드 사용명시, 및 task로 clean bootJar 등록
- 빌드 후 빌드 경로 찾아놓고, 해당 경로 적어서 java application 실행할수있도록 script작성
이슈
젠킨스 멈춤
ram부족
프리티어 ram 1기가
젠킨스 + spring은 용량부족임 따라서 스왑사용
build.gradle파일에서 명칭틀림
build.gradle내 bootJar에 mainClass 로 springboot 명칭 변경됨
SpringFramework 2.3.12 and older
1 | springBoot { |
SpringFramework 2.4.0 and newer
1 | springBoot { |