[Heroku] flask 앱 배포하기

happypath·2022년 1월 24일
0

Flask

목록 보기
10/10
post-thumbnail

엘리스 교육 들은지도 이제 5개월이 다 되어간다.
3차 플젝만을 남겨두고있는데...ㅎㅎ
이력서, 포트폴리오를 작성하려고 보니 1차 프로젝트를 애저vm에만 배포해 놓고 다른 곳에 올려 놓지를 않았다는 것을 깨달음...(뿌끄)

깃허브 주소 달아 놓고 코드 보셔요~! 라고 면접관 분들에게 감히 그럴수는 없으니ㅋㅋㅋ Heroku에 1차 때 만들었던 개인 프로젝트를 올려 보려고 한다.
(맥북프로 m1pro 칩 기준)


⭐️ 시작전 필요사항:
1. Heroku 계정 생성
2. Heroku에서 create new app을 통해 앱 생성
3. 본인 깃 계정에 배포할 앱 코드들이 올려져 있을 것

1. Heroku CLI 다운로드

헤로쿠 아이디는 생성 되어 있다는 전제하에, 아래 링크에서 본인 os에 맞는 방법대로 CLI를 다운로드 해준다.


"맥os"는 터미널에 아래 명령어 입력

brew tap heroku/brew && brew install heroku

heroku --version으로 설치된 헤로쿠 확인😉


2. Heroku 로그인

CLI가 설치 되었다면, 배포를 진행할 폴더로 이동하여 헤로쿠 앱과 깃 레포지토리를 연결해 줘야 한다.

cd <배포할 폴더> //배포 폴더로 이동하기! 
heroku git:remote -a <헤로쿠  이름>

명령어를 입력하면 아래와 같이 브라우저 창으로 이동하게 되고, 헤로쿠 로그인이 된다

git remote 명령어로 확인해보면 아래와 같이 git remote에 heroku가 추가 되었음을 알 수 있다.


3. wsgi.py 및 Procfile 생성

wsgi는 파이썬과 웹서버가 서로 소통할 수 있도록 도와주는 게이트웨이인데,
이를 설정해 줘야 heroku가 우리 프로젝트의 어떤 곳을 실행해서 웹서비스를 동작하게 할 것인지 알 수 있게 해주는 것같다.
구글링의 대부분이 헤로쿠에 푸시하세요~ 에서 다 포스팅이 끝나있어서 삽질을 오래했다ㅠ_ㅠ 눈물
(wsgi.py 위치는 나의 경우 app 하위에 위치시켰음!)

# wsgi.py 
from app import create_app

app = create_app()

if __name__ == "__main__":
    app.run("0.0.0.0", 80)

Procfile 은 무조건 최상단 디렉토리에 위치하게 하고, 파일이름 시작은 대문자이다!
우리가 자주 실행하는 runserver , flask run과 유사한 개념의 명령어라고 생각하면 된다.

# Procfile
# app 안에 wsgi.py 만들어 놨으니까 걔 찾아서 실행해 줄래?
web: gunicorn app.wsgi:app

4. Heroku에 push하기

이제부터는 평소에 깃을 사용하는 것처럼 heroku라는 리모트에 푸시를 해주면 된다.

//깃 사용 법에 대한 자세한 설명은 생략한다
git add
git commit
git push heroku

5. DB migrate

나는 flask-migrate를 통해서 mysql을 사용하고 있었기 때문에,
migration 파일들도 모두 깃에 올라가고 있잖아요?
그렇다면 heroku run flask db upgrade!!!!!
바로 DB migration 해준다.... 엄지척👍🏻

  • 참고자료: Run the app with Flask + Heroku

    I'll give the locally generated migrations files to the server and not run db init or db migrate.
    $ heroku run flask db upgrade

0개의 댓글