[Heroku] spring-boot 배포 시 h10 에러

2021. 9. 24. 05:17etc/Heroku

분명 강의대로 똑같이 했는데 heroku에서 h10 에러가 뻥뻥 터졌다. 검색해보니 동적 포트 번호랑 jar 파일 지정 등 방법이 나왔는데 jar 파일을 지정해 주고 나서 3시간의 삽질이 끝났다. application.properties에 포트 번호를 지정해주는 건 아무 상관이 없었다. heroku 로그를 보면 heroku에서 지정하는 포트로 바인딩된다.

 

해결 방법

먼저 로컬에서 빌드하고 그 빌드 파일 이름을 복사해서 Procfile에 설정한다. 나는 bootJar를 설정해서 빌드 시 생성되는 jar 파일 이름을 바꾸었다.

// build.gradle

// ...other settings

bootJar {
	archivesBaseName='bookStore'
	archiveFileName='bookStore.jar'
}
// Procfile
web: java -Dserver.port=$PORT $JAVA_OPTS -jar build/libs/bookStore.jar
// .travis.yml
language: java
jdk:
  - openjdk11

before_install:
  - chmod +x gradlew

deploy:
  provider: heroku
  api_key: $HEROKU_TOKEN
  app: "wscrg-book-store"
// application.properties
server.port=${port:8080}

이렇게 설정하고 heroku 로그를 확인해보면 서버 포트는 8080으로 바뀌어 있지 않은 것을 확인할 수 있다.

서버는 43520 포트로 열린 것을 확인할 수 있다.

아무튼 서버가 제대로 열리니 다행이다.

 

이 에러를 잡으면서 heroku 커맨드를 조금 익히게 되었다.

- heroku logs: heroku에 기록된 로그를 확인할 수 있다. --tail을 붙여서 최근부터 확인할 수 있다.

- heroku run bash -a appName: heroku의 디렉터리에 접근할 수 있는 명령어이다.

- heroku restart: heroku에서 실행 중인 서버를 재시작한다.

'etc > Heroku' 카테고리의 다른 글

[Heroku] Task :compileJava FAILED 오류  (0) 2021.09.24