헤로쿠 배포 과정과 마주친 문제들 (H10, H14 ...)

    aws 배포를 하기 전 헤로쿠로 배포를 하게되었는데, 이때 마주친 문제들을 기록하고자 한다..

    먼저 헤로쿠 배포 과정을 간단히 설명하겠다. 헤로쿠 회원 가입 및 앱 생성 과정을 먼저 거친 후 다음과 같이 수행해주면 된다.

    # 1. 헤로쿠 로그인
    $ heroku login
    
    # 2. 코드가 있는 폴더로 이동 (자신의 폴더명으로!)
    $ cd Desktop/heroku 
    
    # 3. 깃 초기화
    $ git init
    
    # 4. 연동
    $ heroku git:remote -a {앱이름}
    
    # 5. 배포하기
    $ git add .
    $ git commit -am "commit comment"
    $ git push heroku main
    $ heroku open

     

    하지만 이렇게 배포하게 되면 무조건! 에러를 마주치게 된다.

     

    1. H10-App Crashed Error 

    아마 이 에러를 가~장 많이 마주치게 될 것이다. 헤로쿠 홈페이지에서는 H10 에러를 다음과 같을 때 발생한다고 한다. (아몰랑)

    아무튼 내 해결방법은 다음과 같다.

     

    Procfile을 루트 디렉토리에 생성하고 web: java -jar build/libs/나의프로젝트이름-0.0.1-SNAPSHOT.jar을 넣어준다. 루트 디렉토리에 생성해야함을 주의하고, Procfile의 p는 무조건 대문자로 해주어야 한다.

    web: java -jar $JAVA_OPTS -Dserver.port=$PORT build/libs/{나의jar파일명}-0.0.1-SNAPSHOT.jar

     

    jar 파일의 경우 build/libs 경로에 들어가서 존재하는지 확인해주자! 나같은 경우, 이름도 잘 설정 했는데 대체 왜 에러가 날까... 하다가 저 경로와 jar 파일이 없다는 것을 알게 되었다. 그래서 command + E를 누른 후 gradle 로 이동하여 bootJar을 눌러 빌드해주었고, 그러면  jar 파일을 생성된다.

     

    2. JDK 버전

    > Task :compileJava FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':compileJava'.> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.

     

    스프링 프로젝트는 Java 11을 쓰고 있고, 헤로쿠는 1.8 버전을 사용하기 때문에 발생하는 오류이다. 이번에도 ✨루트 디렉토리✨에 system.properties 파일을 생성한 후 java.runtime.version=11을 넣어주자!

     

    이 에러는 헤로쿠 공식 페이지에서도 잘 나와있다!

     

    3. DB 연동 문제

    heroku Caused by: java.net.ConnectException: Connection refused (Connection refused)

     

    이러한 에러가 발생했었는데, 로컬에서는 MySQL 데이터베이스를 사용하고 있었다. 하지마 헤로쿠에서는 데이터베이스를 연동해주지 않았었다. 일단 생성해준 앱의 대시보드에서 Resources로 이동해서 Find more add-ons를 누른다. 그다음 JawsDB MySQL를 선택해준다.

     

     

    그 후 Install JawsDB MySQL을 눌러서 설치해주면 된다. 

     

    그 후 나의 App을 선택해주면 된다! (아마 앱을 등록하려면 카드를 등록해주어야 했었다..!)

    2. H14 - No web process running

    2010-10-06T21:51:37-07:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=myapp.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=

     

    H14 에러의 경우 헤로쿠 홈페이지에서 다음과 같이 설명되어있다.

    This is most likely the result of scaling your web dynos down to 0 dynos. To fix it, scale your web dynos to 1 or more dynos:

    해석해보면 dynos가 없어서 발생하는 문제이니 dynos를 만들으라는 얘기이다!ㅎㅎ

    그래서 아래의 명령어로 서비스를 시작해주면 된다!

    $ heroku ps:scale web=1

     

    댓글