본문 바로가기

Project/springfield 대본 다운로드

[Springfield 대본 다운로드] 4. heroku 배포하기 (error: failed to push some refs to 'https://git.heroku.com/download-scripts.git)

반응형

참고 문서: https://wikidocs.net/83113

 

006 heroku에 호스팅해보기

# heroku에 호스팅해보기 pythonanywhere는 간편하지만 무료 버전은 제한이 있습니다. (02-5 참조). 특히 공공 데이터 API는 pythonanywhere ...

wikidocs.net

 

1. 환경 준비

 

2. 관련 파일 준비

vscode로 가서 관련 파일들을 준비한다.

 

1) gunicorn 설치

pip install gunicorn

 

2) requirements.txt 생성

pip freeze > requirements.txt

requirements.txt

3) Procfile 파일 생성

폴더 최상위 바로 아래 Procfile 파일을 생성하고 아래 내용을 작성한다.

web: gunicorn app:app

 

4) .gitignore 파일 생성

폴더 최상위 바로 아래 .gitignore 파일을 생성하고 여기 접속해서 Flask, venv 입력해 나온 내용을 복붙한다.

 

5) runtime.txt 파일 생성

폴더 최상위 바로 아래 runtime.txt 파일을 생성하고 아래 내용을 작성한다.

(단, 이 글은 2022.02.16 기준임을 밝힌다. heroku에서 지원하는 python의 버전이 계속 바뀌는 것 같은데 지원하는 버전에 맞게 설정해 주어야 배포가 가능하기 때문이다. 처음에 3.7.6으로 했다가 에러 발생했음..)

python-3.7.12

 

 

3. 배포하기

1) git 설정

해당 프로젝트를 git과 연결하는 작업이다.

git을 처음 설치한 경우, git config를 통해 초기 설정이 필요하지만 이미 사용 중인 경우 git init만 하면 된다.

git init

//이미 사용 중이라면 넘어가기
git config --global user.name 사용자이름
git config --global user.email 사용자이메일

 

2) heroku 로그인 

heroku login

로그인 성공

 

3) heroku 앱 생성

heroku create 프로젝트명

앱 생성 성공

4) git commit 

git add ./
git commit -m "Commit for heroku"

 

5) 배포

git push heroku master

 

 

하면 잘 될 줄 알았는데.. 

🔒 에러가 발생했다면?!

 

로그를 살펴보면 python-3.7.6not available 하다고 한다.

이게 2-5runtime.txt에서 작성한 python 버전이 문제였던 것이다.

 

🔑 python-3.7.12로 변경 후 push하니 성공적으로 배포되었다.

따라서 배포 전에 여기 들어가서 heroku가 지원하는 python 버전을 잘 확인하자!!

deploy...done. 감격..

 

4. 결과 확인

많관부!

(파일 다운 받을 때 로딩화면 보여주고 싶었는데 아무리 찾아봐도 모르겠어서 포기.. )

https://download-scripts.herokuapp.com/

 

반응형