Search

#020#CI/CD-04 #Prod로 테스트 세팅/빌드

목표

1. prod모드로 테스트 하고 2. build 해보고 3. jar파일안에 데이터들이 잘 들어 갔는지 확인해야된다.
SQL
복사

yml설정 재확인

datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ropatestdb username: ropa password: ropa1234
Java
복사
mysql 설정이랑 url을 설정하고 금방생성한 db이름을 넣어줘야된다. 그리고 username/password도 마찬가지.
그리고 application.yml에도 prod모드로 바꿔주자.

prod 모드 통합 테스트

test디렉토리에 오른쪽 마우스 클릭하면 Run ‘All tests’가 보일텐데 이걸로 통합테스트를 하면된다. dev모드로 테스트가 모두 통과하고 mysql도 제대로 생성했다면은 prod모드도 별 탈없이 통과할 것이다.
prod모드 테스트 확인

JAR 파일 구워보기

./gradlew clean build
JavaScript
복사
bash에서 프로젝트를 build한다. 테스트에 모두 통과했다면 문제없이 jar파일이 구워질 것이다.
ROOT > build > libs > 이 경로에 finalproject-0.0.1-SNAPSHOT 파일로 jar가 구워 졌다.

프로젝트 이미지 libs폴더에 옮기기

이해하기..
배포시에 엘라스틱 빈스톡한테 결국엔 ZIP파일을 던져줘야된다.
ZIP파일의 내부구조를 위의 그림과 같이 만들면, 엘라스틱 빈스톡이 찾을 수 있다.
결국 jar파일 외의 정적 리소스 ( 사진, 그림 등등) 폴더를 jar파일 옆에 폴더를 만들고 복사해야된다. ( 경로 : build/libs/ )
그리고 엘라스틱 빈스톡을 위한 zip파일을 생성하는 과정은 GitActions가 담당하게 되고, GitActions가 읽을 수 있는 config파일을 우리가 작성해주면 된다.
이렇게 libs폴더 내부, jar파일 옆에 복사하면 된다.

Procfile 생성

설명
Procfile은 PaaS (Platform as a Service) 환경에서 애플리케이션이 어떻게 실행이 될지 정의하는 파일이다.
Procfile은 애플리케이션 실행 명령어를 명시적으로 지정하여 배포된 애플리케이션이 올바르게 실행되도록 한다.
Procfile은 확장자명이 없어야 된다.
위처럼 Procfile이 jar파일 옆에 있으면 되겠다.

Procfile 정의

// Procfile 정의! java -jar -Dspring.profiles.active=prod *.jar
Java
복사
명령어 설명
java -jar: Java로 JAR 파일을 실행하는 명령어.
Dspring.profiles.active=prod: Spring Boot 애플리케이션의 프로파일을 prod로 설정.
application.jar: 실행할 JAR 파일.