JaeWon's Devlog
article thumbnail
반응형

이전 글에서 Heroku 에 배포하기 위한 기본적인 세팅을 진행하였다.

이번 글에서는 Heroku 에 SpringBoot 어플리케이션을 배포하고 확인을 해보려고 한다.

(작성자의 샘플 : https://test-jpa-api.herokuapp.com/) -> 2022년 11월 28일 부로 무료 종료


1. Heroku Git 설정하기

- 추후 Heroku App에서의 원활한 로그 확인을 위해 우리나라 시간으로 설정한다.

heroku config:add TZ="Asia/Seoul"--app heroku-app-name   --> (Heroku 생성시 작성한 앱이름)

- Heroku 페이지에 기본적인 Git 설정에 대해 작성되어 있고, 따라서 진행한다.

- cmd(terminal)에서 heroku login을 한다.

- 배포하고자하는 프로젝트의 경로로 이동한다.
(만약, 프로젝트 생성 이전이라면 원하는 경로에 폴더를 생성하여 진행한다.)

- 해당 위치에서 git init 을 통해 git 배포를 위한 준비를 한다.

$ cd /프로젝트/경로  -> 프로젝트 이동
$ git init -> git 준비

- git remote 명령어를 통해 저장소를 등록한다.

$ heroku git:remote -a heroku_app_name  --> (Heroku 생성시 작성한 앱이름)

- git status 로 현재 git 의 상태를 조회한다.

$ git status

- commit 하여 배포하기 전에 SpringBoot 프로젝트에서 간단한 설정 파일을 추가 한다.

 

2. SpringBoot 프로젝트에 설정 파일 추가 및 수정하기

- 최종적으로는 배포하고자 하는 프로젝트의 구성은 아래 그림과 같다.

- 기본적으로 Heroku 는 Java 8로 제공한다.

- Java8로 프로젝트가 되어있다면, 해당 내용은 진행하지 않아도 되지만, 11로 되어있다면 추가가 필요하다.

- heroku 홈페이지에서 제공하는 내용을 확인하여, 동일하게 진행한다.
   (https://devcenter.heroku.com/changelog-items/1489)

- 로컬 디렉토리에 system.properties 파일을 추가하고, 아래 내용을 추가한다.

java.runtime.version=11

- 다음로는 DB 연결을 위한 application.properties(yml) 파일을 작성/수정 한다.

- 앞선 글에서 Heroku에 등록한 DB 정보를 추가한다.

ex) mysql://blogtestsample:samplepwd@heroku.host.net/heroku_dbname?reconnect=true
  • host-name: heroku.host.net
  • user-name: blogtestsample
  • user-password: samplepwd
  • database-name: heroku_dbname

- Heroku 에서 원활한 배포 및 빌드 환경을 구성하기 위해 build.gradle 파일도 수정한다.

- gradlew build 시 jar 파일이 생성되는 파일명 및 위치를 설정한다.

bootJar{
    destinationDirectory = file("./원하는위치")
    archivesBaseName = '프로젝트이름'
    archiveFileName = '원하는파일명.jar'
    archiveVersion = "0.0.1"
}

- 마지막으로, Heroku 에서 배포 및 빌드 후 해당 프로젝트를 실행 시키기 위한 파일을 추가한다.

- 로컬디렉토리에 Procfile(확장자가 따로 없습니다.) 을 생성하고, 아래 내용을 추가한다.

  • Dserver.port : 위 application.yml 에서 작성한 포트를 가져옵니다.(실제로는 적용안되던데... 이게 중요한건 아니니까...)
  • Dsrping.profiles.active : 프로젝트 env 상태 설정(dev, stage, prod 등 설정하지만... 간단한게 사용하는 거니까 대충 적습니다..)
  • $JAVA_OPTS -jar "빌드시 생성된 jar 파일 경로" : jar 파일을 실행하기 위한 경로
web: java -Dserver.port=$PORT -Dspring.profiles.active=production $JAVA_OPTS -jar "target/heroku_app.jar"

3. Heroku에 배포하기

- 이제 모든 설정 및 세팅이 끝났으니, Heroku 에 배포하고 확인을 한다.

- cmd(terminal)에서 git status 로 현재 파일 상태를 확인한다.

- git add 명령어를 통해 저장소에 파일을 올린다.

$ git add .

- 파일을 확인 후 commit & push 를 진행한다.

$ git commit -m "커밋 메시지"

- heroku 에 push 한다.(기본적으로는 브랜치가 master 이지만, 일반 git이랑 같이쓰다가 heroku의 branch 이름을 main 으로 바꾼 것 이다.)

$ git push heroku master
만약 위 명령어가 에러가 발생한다면 아래와 같이 진행해보시기 바랍니다.
$ git push heroku HEAD:master

- push를 하게되면 위 그림과 같이 빌드 과정도 확인이 가능하고, heroku 홈페이지에서도 동일하게 확인이 가능하다.

- 성공적으로 배포가 끝났다면, heroku open 명령어를 통해 앱을 실행한다.

$ heroku open

- 또는 heroku_app_name.herokuapp.com 으로 접속한다.(작성자의 샘플 : https://test-jpa-api.herokuapp.com/)

- log 확인은 아래 명령어 또는 홈페이지를 통해서 확인이 가능하다.

$ heroku logs --tail

- 수정 사항이 있을 때마다 동일한 방법으로 commit & push 를 통해서 진행하여 사용하면 된다.


참고

- https://hayden-archive.tistory.com/465

- https://parkbongil.github.io/heroku-spring-boot/

반응형
profile

JaeWon's Devlog

@Wonol

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!