Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- 인프런
- 자바
- Spring Boot
- Thymeleaf
- 알고리즘
- 김영한
- Exception
- SpringBoot
- spring
- Proxy
- kotlin
- Servlet
- http
- jpa
- 그리디
- springdatajpa
- Greedy
- 스프링
- JPQL
- db
- pointcut
- JDBC
- Android
- java
- transaction
- 스프링 핵심 원리
- AOP
- 스프링 핵심 기능
- QueryDSL
Archives
- Today
- Total
개발자되기 프로젝트
WebApplication 배포, Heroku 본문
- 이왕 만들어 본거 배포까지 해보자!
1. HEROKU
- 클라우드 플랫폼으로 한 계정당 5개 application을 무료로 배포할 수 있다.
- GitHub과 연동되어서 편하게 배포 가능
2. Heroku 사용 방법
- 회원가입
- app생성
- CLI 다운로드
- CLI를 사용하면 GIT처럼 CMD에서 controller 가능.
- https://devcenter.heroku.com/articles/heroku-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공식문서에 잘 나와있다. 역시..공식문서..
- 해당 문서를 찾아보면 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')
}
}
- 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
'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