1. 시험환경
˙ Ubuntu 20.02 (AWS EC2)
˙ Java 11
˙ Spring Boot (Gradle, JIB)
2. 목적
˙ GitHub, Docker Hub, AWS EC2를 활용하여 Integration 및 Deploy 구축한다.
˙ Gradle, JIB, docker 사용법을 학습한다.
3. 적용
① 개발자는 IDE 환경에서 Spring Boot 프로젝트를 생성하고 개발한다.
② 개발자는 프로젝트 코드를 GitHub에 push한다.
③ AWS EC2에서 빌드 및 배포를 위해 프로젝트 코드를 checkout 한다.
- GitHub Repository가 public인 경우 : 별도의 절차없이 clone, push, pull 가능하다.
- GitHub Repository가 private인 경우 : 사용자 계정, 토큰을 이용하여 clone, push, pull 가능하다.
[Local 빌드 및 배포하는 방법]
④ gradle을 이용하여 jar 또는 war 패키지로 빌드한다.
- $./gradlew clean build
⑤ 패키지가 생성된 폴더로 이동한다.
- $cd build/libs
⑥ 패키지를 실행한다.
- $ java –jar [pkg.war]
[Docker 빌드 및 배포하는 방법]
④ JIB을 이용하여 docker image로 빌드하고 docker Hub에 push 되었는가 확인한다.
- 사전작업1 : docker 설치 (★)
- 사전작업2 : docker login (★)
- 사전작업3 : gradle.build 파일에서 JIB 플로그인 추가 및 설정 (★개발 및 배포 환경에 따라 설정)
- $./gradlew clean jib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
plugins {
id 'com.google.cloud.tools.jib' version '3.1.4'
}
jib {
from {
image = 'adoptopenjdk/openjdk11:alpine-jre'
}
to {
image = 'docker-hub-repository'
tags = ['1.0']
}
container {
entrypoint = ['java', '-Dspring.profiles.active=template', '-jar', 'template-0.0.1-SNAPSHOT.war']
// mainClass = 'com.test.StartApplication'
jvmFlags = ['-Xms512m', '-Xmx512m', '-Xdebug', '-XshowSettings:vm', '-XX:+UnlockExperimentalVMOptions', '-XX:+UseContainerSupport']
ports = ['8080']
environment = [SPRING_OUTPUT_ANSI_ENABLED: "ALWAYS"]
labels = [version:project.version, name:project.name, group:project.group]
creationTime = 'USE_CURRENT_TIMESTAMP'
format = 'Docker'
}
extraDirectories {
paths {
path {
from = file('build/libs')
}
}
}
}
|
cs |
⑤ 서비스 배포할 서버에서 docker Hub에 등록된 이미지를 다운 받는다.
- $docker pull [repo:tag]
⑥ docker 컨터네이너를 실행한다.
- $docker run –p 8080:8080 [img-id]
4. 결과
˙ Local 또는 Docker 배포한 서비스가 정상동작하는지 접속한다.
- URL : http://[ip:8080]/index
※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※
'AWS(Amozon Web Service)' 카테고리의 다른 글
[docker] commit 명령어를 이용하여 docker image 생성 (0) | 2023.02.15 |
---|---|
Ubuntu 운영체제에서 Ansible 설치 (0) | 2022.09.06 |
RDS 인스턴스 생성하기 (0) | 2021.06.29 |
S3 버킷 생성하기 (0) | 2021.06.29 |
EC2 인스턴스 (ubuntu) 웹 서비스 동작 확인 (0) | 2021.06.29 |