개발

Heroku로 spring boot 프로젝트 배포하기

jiwoosmile 2022. 10. 14. 18:22

 

0. Prerequisites

- Heroku 가입

http://softwareengineeringdaily.com/wp-content/uploads/2019/12/Heroku.png

- Create App

https://dashboard.heroku.com/new-app

 

- Install Heroku

https://devcenter.heroku.com/articles/heroku-cli

brew tap heroku/brew && brew install heroku

맥에서는 위의 코드를 이용할 수 있다.

 

- 설치 확인

terminal에서 which heroku로 확인할 수 있다.

 

- 터미널에서 heroku로그인

heroku login

하고 나서 하라는 대로 로그인하자.

 

- 로그인 확인

heroku whoami

 

1. 빌드를 합시다!

./gradlew bootJar

 

2. 설정을 합시다!

- 자바 버전 설정하기: 프로젝트 최상위에 system.properties파일을 만들어서 아래 내용을 작성해줍니다.

java.runtime.version=17

https://devcenter.heroku.com/articles/java-support

- 실행할 명령 설정하기: 프로젝트 최상위에 Procfile파일을 만들어서 아래 내용을 작성해줍니다. 

web: java -Dserver.port=$PORT -jar build/libs/<실행을 원하는 파일>.jar

- config 설정하기: 만약 git root directory가 project root directory와 다른 경우에 설정을 해줘야 한다.

heroku config:set PROJECT_PATH=<git root을 기준으로 한 프로젝트 path>

혹은 터미널을 쓰기 싫은 경우 해당 App의 Settings에 가서 Config Vars에 내용을 채워주면 된다.

- buildpack 추가하기: 만약 git root directory가 project root directory와 다른 경우에 추가 해줘야 한다.

https://github.com/timanovsky/subdir-heroku-buildpack.git 를 settings의 Buildpacks에 Add buildpack 을 눌러서 URL을 넣어주고 Save changes를 눌러 추가해준다. 

최상단에 있어야 하기 때문에 만약 순서가 맞지 않다면 햄버거 부분을 눌러 최상단으로 이동시킨다.

- buildpack 추가하기: gradle을 사용하는 프로젝트라면 gradle buildpacks를 추가해줘야 한다.

settings의 Buildpacks에 Add buildpack을 누르고 gradle을 누르고 Save changes를 눌러 추가해준다.

 

아래와 같이 추가된다.

 

 

3. 원격 저장소 추가하기!

heroku git:remote -a <App 이름>

Deploy탭에 있는 명령어를 따라 친다.

만약 이미 깃 레포지토리에서 작성한 경우 Existing Git repository 부분의 코드를 치면 되고,

만약 깃 레포지토리가 없는 경우 Create a new Git repository를 따라하면 된다.

 

4. 변경 내용 커밋하고, 푸시를 합시다!

git push heroku main // main 브랜치를 푸시하는 경우
git push heroku <푸시하고 싶은 브랜치>:main // main 브랜치가 아닌 브랜치를 푸시하는 경우

 

* application.properties 파일이 gitignore되어 있지 않도록 주의하자!

 

완성⭐️

 

참고: https://stackoverflow.com/questions/39197334/automated-heroku-deploy-from-subfolder