카테고리 없음

[Spring] Heroku로 간단 배포하기

우디혜 2021. 3. 3. 11:26

 

앱 만들기

먼저 heroku 홈페이지에 접속한 뒤 새로운 앱을 만들어 준다. (계정이 없다면 가입부터)

 

앱 생성 화면

 

생성된 앱 대쉬보드

 

Option 1. Heroku git으로 배포하기

 

1. Heroku CLI을 설치

 

✔ 설치할 때 'PATH not updated' 에러가 떠서, 따로 환경변수 설정을 해주었다.

[ 참고 ]

 

git bash로 heroku에 로그인

 

2. 리모트 저장소 생성

배포하고싶은 파일의 root 위치로 이동한다.

나는 demo 프로젝트를 jihye-elmo라는 이름으로 배포할 예정이다.

(만약 프로젝트가 깃등록이 되어있지 않다면 git init 명령어를 실행)

 

아래 명령어를 통해 리모트 저장소를 생성한다.

// jihye-elmo라는 이름의 리모트 저장소 생성
heroku git:remote -a jihye-elmo
// 리모트 브랜치가 정상적으로 생성되었는지 확인
git remote -v

 

 

현재 로컬 프로젝트에 대한 리모트 저장소 등록

 

3. 배포 (변경사항 반영 후 재배포도 마찬가지)

 

heroku master브런치에 push하는게 배포랑 같다고 생각하면 된다

heroku master 브랜치에 배포할 커밋들을 푸쉬한다.

push한 이후, 그레이들을 감지해서 자동으로 프로젝트를 빌드한다.

 

git add .
git commit -am "first deploy"
git push heroku master

 

배포 완료 https://jihye-elmo.herokuapp.com 으로 접속하면 된다.

 

배포할 브랜치가 main 혹은 master가 아닐 경우 아래와 같이 실행해주어야 한다. - 참고


✔ testbranch(non-master 브랜치)가 리모트의 마스터 브랜치로 push를 한다고 아래와 같이 명시해주어야 push와 함께 자동으로 빌드할 수 있다.

git push heroku testbranch:master

 

푸쉬하는 브랜치가 main 혹은 master가 아닐 경우 build 과정을 스킵해버린다.

 

 

나는 현재 컨트롤러에 get 메소드 밖에 없기 때문에

@GetMapping("/hi")
    public ModelAndView hello(ModelAndView model){
        model.setViewName("hello");
        Map<Long, String> peopleList = new HashMap<>();
        peopleList.put(1L, "Sally");
        peopleList.put(2L, "Tom");
        peopleList.put(3L, "John");
        model.addObject("people_list", peopleList);

        return model;
    }

 

아래 보이는 화면이 다다.

어쨌든 배포 성공

 

성공

 

굳이 이렇게 하지 않아도 대쉬보드의 auto deploy 기능을 활용해서 자동으로 배포를 하게 해줄 수도 있고, manual deploy 메뉴에서 deploy branch 버튼 클릭 한 번으로 수동 배포도 가능하다.

 

 

 연습용이므로 이후 앱도 지우고 프로젝트에서 리모트 저장소 경로도 삭제해주었다.

 

heroku 리모트 저장소 경로 삭제

 

 

Option 2. github에 올려놓은 프로젝트로 배포하기

...