Heroku App 배포

Page content

개요

Procfile 생성

  • 프로젝트 Root 디렉터리에 Procfile 을 생성한다.
web: gunicorn index:server
  • 이 때, index 파일명을 의미한다.

작업 파일 수정

  • index.py을 열고, 다음 코드를 추가한다.
    • server = app.server 을 추가한다.
app = dash.Dash(__name__, meta_tags=[{"name": "viewport",
                                      "content": "width=device-width"}])

server = app.server

Runtime 파일 추가

  • 어떤 파이썬 버전에서 실행할 것인지 해당 코드를 작성한다. (runtime.txt)
    • 마찬가지로 프로젝트의 Root 디렉토리에서 생성한다.
python-3.8.7

Heroku 로그인 및 App 생성

  • Heroku 회원가입을 안했다면, 진행한다.

  • 회원 가입 후, 프로젝트를 생성한다.

/img/python/dash/Heroku_app_deploy/

Untitled

  • 프로젝트를 생성한다. 프로젝트 생성 시, 폴더이름과 동일하게 작성한다.
    • 프로젝트 생성 시 파일명에 유의한다. _ 는 되지 않는다.

Untitled

  • Create App을 클릭하면 다음 화면이 나타난다.

Untitled

  • 여기에서 Github 프로젝트와 연동 한다.

Untitled

  • 연동을 한 이후에는 Enable Automatic Deploys 를 클릭한다.

Untitled

  • 이 때, 회원가입시, 작성했던, ID와 Password가 필요하다.
$ heroku create python-dash-sales
»   Warning: heroku update available from 7.53.0 to 7.59.2.
Creating ⬢ python_dash_sales... !
 !    Invalid credentials provided.
 »   Warning: heroku update available from 7.53.0 to 7.59.2.
heroku: Press any key to open up the browser to login or q to exit:
Opening browser to https://cli-auth.heroku.com/...
Logging in... done
Logged in as your_id@gmail.com
Creating ⬢ python_dash_sales... !
 !    Name must start with a letter, end with a letter or digit and can only contain lowercase letters, digits, and
 !    dashes.
  • 이제 Heroku Login을 진행한다.
$ (venv) heroku login
heroku: Press any key to open up the browser to login or q to exit: 
Opening browser to https://cli-auth.heroku.com/auth/cli/browser/9320abcd-b8c6-406d-9198-ca14d1e59a26?requestor=SFMyNTY.g2gDbQAAAA4yMjEuMTU3LjM3LjIxNm4GAGgtTBB7AWIAAVGA.GlyVc8jbyiW6NG0MVzCS0bOjtzBWvYRfjB9-gnkQaoQ
Logging in... done
Logged in as your_email_address

$ heroku git:remote -a sales-dashboard-evan

Git Push

  • 위 파일들을 모두 git add, commit, push를 통해 업로드 한다.
  • 이 때, 중요한 것은 venv 파일등은 업로드가 되면 안되기 때문에, 제거 하던가, 또는 gitignore 활용한다.
  • 해당 파일을 Git Push 하도록 한다.
$ git add .
$ git commit -am "make it better"
$ git push 
$ git push heroku main