본문 바로가기
Project/Error Management

[Error Management] Heroku 배포 장애 : pre-receive hook declined

by 꾸압 2022. 10. 8.

 

<서론>

  - Heroku로 간단하게 앱을 배포하려는데, 에러가 난다. 이유를 찾아보자

 


 

<본론>

  (1) 지원하는 App을 적절히 사용하여 repository에 push 하는지 확인

    ==> 임의의 repository에 push 하여 발생하는 문제는 아닌지?

$ git init
$ git add .
$ git commit -m ""
$ heroku create
$ git push heroku master

 

  (2) package-lock.json 이나 yarn.lock 등 종속성 문제는 아닌지 확인

    - lock 파일이 2개가 동시에 존재하면 Error 발생 ==> lock 파일 하나를 삭제하자

    - 반대로 npm 설정을 해놓고 lock 파일을 삭제하면 발생하는 문제. (본인이 이랬음)  ==> lock 파일 재설치하자

 

  (3) Collectstatic 파일에 문제가 있는지 확인

    - Collecstatic 파일은 Application에 쓰이는 css, font, js 등 모든 정적 파일을 하나의 경로에 모아줌.

$ heroku config:set DISABLE_COLLECTSTATIC=1

$ git push heroku master

 

  (4) sshkey 가 outdated 하여 발생하는 문제인지?

    - sshkey를 업데이트하자

 

  (5) node_modules 폴더를 push 한건 아닌지 확인

    - .gitignore에서 node_modules 를 제외시킬 것.

 

  (6) Heroku는 Package.json 을 읽어 동작하므로, git을 동작하는 root 파일 경로에 Package.json 파일이 없으면 Error가 뜸.

    ==> 즉 ~/Server 나 ~/Client 등 하위 폴더에 Package.json 파일이 있다면 Error 남.

    ==> root 폴더 경로에서 아래 명령어를 실행하자.

git subtree push --prefix [package 파일이 있는 폴더 이름] heroku master

<이건 예시>
git subtree push --prefix server heroku master

 


 

<출처>

  - https://stackoverflow.com/questions/8216586/git-heroku-pre-receive-hook-declined

  - https://doqtqu.tistory.com/323

  - https://nachwon.github.io/django-deploy-4-static/

 

 

댓글