### 스프링부트와 클라우드활용 강의용 깃 소스를 스프링부트2 프로젝트를 스프링부트3로 마이그레이션
- 이전 포스트 https://kimilguk.tistory.com/862 에 이어서 계속 작업 합니다.
- 기존 스프링부트2 프로젝트(v2.6.3) 소스 : https://github.com/kimilguk/kimilguk-boot2
- 마이그레이션 스프링부트3 프로젝트(v3.2.1) 소스 : https://github.com/kimilguk/kimilguk-boot3
지금까지 작업한 결과화면(K-PaaS 컨테이너 플랫폼에서 DB회원으로 로그인 후 새글을 등록한 화면-아래)
---------------------------------------------------------------------------------------------------------------------------------------------------
- 참고로, 이전 포스트 https://kimilguk.tistory.com/858 에서 K-PaaS 컨테이너 플랫폼 클라우드에 노드js앱을 배포한 결과와 비교해 본다.
K-PaaS 플랫폼에 배포한 노드js앱 : http://playpark-cp.k-paas.org:30080/board/boardList
K-PaaS 플랫폼에 배포한 스프링부트3앱 : http://playpark-cp.k-paas.org:30180
koyeb 플랫폼에 배포한 스프링부트3앱 : https://junior-petrina-kimilguk2.koyeb.app/
10_#K-PaaS 컨테이너 플랫폼 클라우드에 배포하는 명령어 순서(아래)
1) 도커 이미지 만들기 : docker build . -t kimilguk/kimilguk-boot3
2) 위 이미지 PC에서 실행해 보기 : docker run -d -p 80:8080 kimilguk/kimilguk-boot3 (확인: http://localhost:80 )
3) 도커로그인 : docker login
4) 도커허브에 위 이미지 업로드 : docker push kimilguk/kimilguk-boot3
5) 현재 쿠버네티스 K-PaaS설정 확인 : kubectl config view
6) 현재 쿠버네티스에 운영 중인 컨테이너 확인 : kubectl get all
7) 도커이미지를 K-PaaS 컨테이너 플랫폼에 배포 : kubectl apply -f deployments.yaml
- 참고로, 작업취소 명령은 아래와 같다.
현재 K-PaaS에 배포된 컨테이너 삭제 : kubectl delete -f deployments.yaml
kubectl get all
# 위 작업 순서중 해당 되는 이미지 확인(아래)
1) 도커이미지를 만들기 전 이클립스에서 bootJar 실행파일 만들기(아래)
- bootJar 생성 전 현재 postgreSQL DB사용과 네이버API로그인인증을 보안때문에 h2DB와 paas용으로 변경 db-h2,oauth-paas(아래)
#h2 DB사용시 외부프로필포함 파일명: application(prefix접두사생략)-db-h2
#spring.profiles.include=db-h2
#h2 DB사용시 import_h2db_only.sql의 파일명을 import.sql로 변경하면 초기 Data가 입력된다.
#spring.profiles.include=db-postgres,oauth-local
#위 OAuth 로컬PC용 설정포함 파일명: application(prefix접두사생략)
#위 oauth-local.properties(suffix접미사생략)
spring.profiles.include=db-h2,oauth-paas
- 도커 파일 Dockerfile 만들기에서 위 에서 생성한 bootJar 파일을 사용한다.(아래)
FROM openjdk:17-jdk
ARG JAR_FILE=build/libs/kimilguk-boot3.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
2) PC에서 도커 이미지 실행 및 스프링부트3 앱 로그 확인(아래)
- 도커 데스크탑 관련설명은 이전 포스트 참조 https://kimilguk.tistory.com/855
3) 도커허브에 위 이미지 업로드(아래)
4) 도커허브에 위 이미지 업로드 결과(아래)
5) 현재 작업PC에서 쿠버네티스 설정 확인(아래)
5) K-PaaS 컨테이너 플랫폼에 배포에 사용된 deployments.yaml 파일 확인.
- 도커허브의 이미지가 public이라 예전 노드js앱 이미지(private)처럼 imagePullSecrets: 속성이 필요없다.(아래)
apiVersion: apps/v1
kind: Deployment
metadata:
name: kimilguk-boot3
spec:
replicas: 1
selector:
matchLabels:
app: kimilguk-boot3
template:
metadata:
labels:
app: kimilguk-boot3
spec:
containers:
- name: kimilguk-boot3
image: kimilguk/kimilguk-boot3
imagePullPolicy: Always
ports:
- name: kimilguk-boot3
hostPort: 8080
containerPort: 80
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: kimilguk-boot3
spec:
type: NodePort
ports:
- name: nodejsboard
port: 80
nodePort: 30180
targetPort: 8080
protocol: TCP
selector:
app: kimilguk-boot3
6) K-PaaS 컨테이너 플랫폼에 배포 및 현재 쿠버네티스로 운영중인 컨테이너 확인(아래)
Spring부트에서 WebFlux 웹 프레임워크 사용해 보기 (1) | 2024.05.02 |
---|---|
스프링부트2 프로젝트를 스프링부트3로 마이그레이션_2/3 (0) | 2024.01.30 |
스프링부트2 프로젝트를 스프링부트3로 마이그레이션_1/3 (1) | 2024.01.28 |
헤로쿠 클라우드플랫폼 기존에 사용하던 스택 업그레이드 (0) | 2022.08.19 |
코트린 프로젝트17 (0) | 2022.06.03 |
댓글 영역