LostCatBox

SpringAndJenkins

Word count: 353Reading time: 2 min
2022/12/25 Share

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
2
3
4
bootJar{
enabled = true
mainClass = 'com.example.demo.HomeworkApplication'
}

젠킨스 설치 전 스펙 및 준비사항

  • aws ec2 프리티어
  • ubuntu 20.04
  • 램 1기가, 하트 용량 8기가이므로 반드시 스왑해줘야함.
  • 8090포트로 접속 목표
  • 보안 그룹에 ssh, 8080,8090포트 등 열어두기
  • ec2에 java 11 버전 설치

젠킨스 설치

1
2
3
4
5
6
7
8
9
sudo apt-get update // apt 업뎃

sudo apt-get install openjdk-11-jdk //java 11 설치

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - //key 다운

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxxxxxxxxxx //x값 키 등록

sudo apt-get install jenkins // 젠킨스 설치

젠킨스 포트 변경

https://dev-nomad.com/100

case1

  • sudo vi /etc/default/jenkins
  • HTTP_PORT값 8090으로 변경

case2

1
2
3
sudo chmod 777 /usr/lib/systemd/system/jenkins.service
sudo vi /usr/lib/systemd/system/jenkins.service
sudo chmod 444 /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 관리 →

    1

새로운 아이템(프로젝트 등록)

  • 소스 코드 관리 등록
    • branch는 master → main으로 바꾸기

2

  • 해당 프로젝트 gradle 빌드 사용명시, 및 task로 clean bootJar 등록

Untitled

  • 빌드 후 빌드 경로 찾아놓고, 해당 경로 적어서 java application 실행할수있도록 script작성

4

이슈

젠킨스 멈춤

ram부족

https://blog.nachal.com/1646

프리티어 ram 1기가

젠킨스 + spring은 용량부족임 따라서 스왑사용

build.gradle파일에서 명칭틀림

build.gradle내 bootJar에 mainClass 로 springboot 명칭 변경됨

SpringFramework 2.3.12 and older

1
2
3
springBoot {
mainClassName = 'com.example.ExampleApplication'
}

SpringFramework 2.4.0 and newer

1
2
3
springBoot {
mainClass = 'com.example.ExampleApplication'
}
CATALOG
  1. 1. Spring + Jenkins
  2. 2. 왜?
  3. 3. 젠킨스 구현 방법
    1. 3.1. Spring에서의 설정 - build.gradle
    2. 3.2. 젠킨스 설치 전 스펙 및 준비사항
    3. 3.3. 젠킨스 설치
    4. 3.4. 젠킨스 포트 변경
      1. 3.4.1. case1
      2. 3.4.2. case2
      3. 3.4.3. 마무리
    5. 3.5. 젠킨스 계정 설정 및 설정
    6. 3.6. 새로운 아이템(프로젝트 등록)
  4. 4. 이슈
    1. 4.1. 젠킨스 멈춤
      1. 4.1.1. ram부족
      2. 4.1.2. build.gradle파일에서 명칭틀림