Spring Boot + Docker + Jenkins + Github
0️⃣ Tech Stack
Docker, Spring Boot
Jenkins
AWS EC2, ECR
Github
1️⃣ Before start
VPC 설정
Create a VPC 를 따라 VPC 생성
Ref
보안그룹 설정
Create a security group를 따라 보안 그룹 생성
인바운드 규칙과 아웃바운드 규칙 추가
2️⃣ Jenkins Server 생성 및 세팅
EC2 생성
EC2 생성
탄력적 IP 할당
SSH 접속 확인
서버 세팅
update package
Install Jenkins
Install Gradle
Install Git
Install Docker
Jenkins 접속
[EC2 인스턴스 탄력적 IP]:8080 으로 접속
로그인 후 접속
Jenkins와 Github 연동
SSH 키 생성
젠킨스 서버에서 Github Project로 접근하기 위한 SSH키
Github Deploy Key 등록
Github Project > Settings > Deploy Keys > Add deploy key
public key 값을 넣어준다.
Jenkins Credential 등록
Jenkins관리 > Manage Credentials > Credentials
Kind : SSH Username with private key
ID : 해당 크레덴셜의 ID
private key를 크레덴셜로 등록한다.
3️⃣ Dev Server 생성 및 세팅
EC2 생성
EC2 생성
Amazon Linux
탄력적 IP 할당
SSH 접속 확인
Server 세팅
update package
Install Gradle
Install Git
Install Docker
4️⃣ Jenkins 서버와 Dev 서버 연결
Jenkins Server에서 SSH 키 생성
Dev 서버 접근을 위한 키
Dev 서버 Public Key 등록
위에서 생성한 키페어 중 public key를 Dev서버의
.ssh/authorized_keys
파일에 추가
Publish Over SSH 플러그인 설치
Jenkins 관리 > 플러그인 관리 > 설치가능 탭
Publish Over SSH 설치 후 재실행
Jenkins 관리 > 시스템 관리
해당 페이지에서 Publish Over SSH 영역의 고급 버튼을 눌러 각각의 항목들을 설정
Path to Key : 위에서 생성해준 private key 경로를 넣어주세요.
Key : Private key 파일안의 내용을 복사 붙여넣기 해주세요.
Name : 접속할 ssh 서버의 이름을 지어주세요.
Hostname : 접속할 인스턴스의 주소를 넣어주세요.
Username : 접속할 유저명을 넣어주세요.
5️⃣ AWS Container Registry 생성 및 이미지 배포
ECR 생성
Jenkins 서버에서 ECR 접속
6️⃣ Jenkins Item 생성
Item 생성
Github 연결
빌드 정보 입력
Gradle build
Docker build & push
Docker pull & Run
Spring Boot Service 배포 확인
7️⃣ 자동 배포화
Github Webhook 연동
플러그인 설치
Jenkins Webhook 설정
Github Webhook 추가
Ref
Last updated