Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

WebApplication 배포, Heroku 본문

Project/블로그 게시판 만들기

WebApplication 배포, Heroku

Seung__ 2021. 10. 22. 23:03
  • 이왕 만들어 본거 배포까지 해보자!

 

1. HEROKU


  • 클라우드 플랫폼으로 한 계정당 5개 application을 무료로 배포할 수 있다.
  • GitHub과 연동되어서 편하게 배포 가능
 

Heroku

 

dashboard.heroku.com

 

 

2. Heroku 사용 방법


  • 회원가입
  • app생성
  • CLI 다운로드
  • GitHub연동
    • Deploy탭에서 간단하게 설정 가능
    • 이미 GItHub에 올라가있는 경우도 가져올 수 있음.

  • Deploy 방법
    • 배포할 branch 선택 후 Deploy Branch클릭

 

 

3. Error잡기


  • Error원인 확인하고 잡는데만 하루종일 걸렸다..
  • log내용도 너무 불친절하다...ㅜㅜㅜㅜ

으..

  • 현재 Application은 project구성은 다음과 같다
    • JAVA 11
    • Gradle
  • 가장 먼저 마주친 에러는 JAVA 11지원관련 에러이다.
    • system.properties 파일을 만든다.
    • 파일 위치는 build.gradle과 같은 level
    • 파일 내에 아래 내용을 추가
java.runtime.version=11

 

  • 다음으로 마주칠 오류는 port문제이다.
    • heroku는 port를 동적으로 할당한다. 
    • 따라서 application.yml 또는 application.properties에 port를 동적으로 받도록 설정을 변경해 줘야 한다.
    • spring공식문서에 잘 나와있다. 역시..공식문서..
 

“How-to” Guides

Spring Boot has no mandatory logging dependency, except for the Commons Logging API, which is typically provided by Spring Framework’s spring-jcl module. To use Logback, you need to include it and spring-jcl on the classpath. The recommended way to do th

docs.spring.io

  • 해당 문서를 찾아보면 Heroku사용 시 foward-headers-strategy도 변경이 필요하다고 한다.

  • 다음과 같이 추가해 주자.
server:
  port: "${port:8080}"
  forward-headers-strategy: native
  • Gradle을 사용하는 경우 설정도 추가해 줘야 한다.
    • gradle이 plain jar를 생성하지 않도록 설정해야 한다.
    • Plain jar는 call nut found 예외를 유발한다.
    • 'Main-Class': '메인 클래스 package'
    • 메인클래스를 지정해야 Can’t execute jar- file: “no main manifest attribute” 에러 처리 가능
    • 자세한 내용은 아래 글을 참고하자.. 겨우찾음..
jar {
    enabled = false
    manifest {
        attributes('Main-Class': 'hello.blog.BlogApplication')
    }
}

 

 

Deploying Spring Boot apps to Heroku

Spring boot is by far the most popular java web framework. From Netflix, Intuit to thousand of small, medium and startup companies using…

medium.com

 

  • DB설정하기
    • 처음에 project를 H2 DB를 사용했다.
    • Heroku에서 MySQL을 지원하길래 project도 MySQL로 변경했다.
    • Heroku에서 MySQL을 사용하려면 clearDBMySQL을 사용하면 된다.
    • Add-ons를 통해 검색하면 된다.

  • 처음 사용하면 카드 등록을 하라고 할텐데, 무료이니 걱정하지 말자..ㅋㅋㅋ
  • DB설정하기 - url 확인
    • DB설정 후 Heroku에서  해당 app의 setting탭에 들어간다.
    • ConfigVars에서 Reveal Config Vars를 누르면 DB url확인이 가능하다.
      • mysql://aaaaaa:bbbbbb@ccccc~~~
      • aaaa 는 username
      • bbb 는 password

  • DataSource 설정
    • 위에서 확인한 url정보로 application.yml에 datasource 설정을 해주자.
spring:
  profiles:
    active: local
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://~~
    username: ~~
    password: ~~
  • 이정도 까지 하면 아마 배포하는데 문제는 없을 것이다 ㅋㅋㅋㅋ
  • database설정은 local에서 시험할 때만 수정해서 실행하면 될듯.

4. application


https://blog-by-sh.herokuapp.com/

 

 

 

5. GitHub


 

GitHub - bsh6463/blog

Contribute to bsh6463/blog development by creating an account on GitHub.

github.com

 

'Project > 블로그 게시판 만들기' 카테고리의 다른 글

DDL-AUTO 변경  (0) 2021.10.22
블로그 만들기 결과  (0) 2021.10.22
id 생성전략 변경  (0) 2021.10.22
Exception Resolver, 예외 페이지  (0) 2021.10.21
Paging처리  (0) 2021.10.21
Comments