LoginSignup
2
1

More than 3 years have passed since last update.

FlaskアプリをHerokuにデプロイする

Posted at

開発環境

ホストマシン:Windows10
ゲストマシン:Vagrant上にCentOS7

Heroku CLIをインストールしてheroku login…のつもりがうまくいかない

Heroku CLIは以前Railsで開発をしていた時に使っていたので今回も使えるはず・・・そう思って

heroku login

したのですが、

bash: heroku: command not found

とのこと。なぜなのか…?

とりあえず、Heroku CLIをアンインストールしてもう一度Heroku CLI公式ページから Download and Install
Windowsの64bitを選んで再インストールをしてみますが、やはり

bash: heroku: command not found

原因がわからないので、別の方法でherokuをできないか模索しました。

npmを使ってインストールする

Heroku CLI公式ページを下のほうまでスクロールしていくとnpmでインストールする方法がありました。

``It’s strongly recommended to use one of the other installation methods if possible.

This installation method does not autoupdate and requires you to use your system’s version of Node.js, which may be older than the version Heroku develops the CLI against. Heroku uses very current releases of Node.js and does not back-support older versions.``

とあり、できるだけほかのインストール方法を選んだほうがいいそうですがとりあえずデプロイしたいだけなので今回は無視します。

npm install -g heroku

を実行して、

heroku --version

とすると

heroku/7.26.2 linux-x64 node-v10.14.2

どうやらインストールはうまくいったようです。

heroku loginをするがうまくいかない

Herokuのインストールがうまくいったので、次はheroku loginをしてみようと

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/browser/24359ea7-3616-4f3e-a83b-18fb013ed660
 ›   Warning: Cannot open browser.
heroku: Waiting for login... !
JSONError: Unexpected end of JSON input while parsing near ' '
    at module.exports (~/.nvm/versions/node/v10.14.2/lib/node_modules/heroku/node_modules/parse-json/index.js:26:19)
    at HTTP._parse (~/.nvm/versions/node/v10.14.2/lib/node_modules/heroku/node_modules/@heroku-cli/command/node_modules/http-call/lib/http.js:343:25)

JSONError? なんですかそれ? ということで調べてみました。
そうしたらちょうど同じエラーに遭遇した人がいました。

Herokuにログインできないときの対処法
いわく、Opening brwoser to ~ の ~ をブラウザで開いてログインするのをHerokuが待っているとのこと。

ブラウザで開いてみると
heroku_before_login.png
画面真ん中のLog inをクリックすると次のような画面が表示されてログイン成功のようです。
heroku_after_login.png
手元のコンソールにもどってみると

Logging in... done

と表示されました。ログインに成功したようです。

heroku createからheroku openまで

ここからさきはこちらの記事等を参考にしました。

今回はデータベースは使わないので

requirementx.txt
flask
gunicorn
feedparser #feedparaserはRSS取得用のライブラリ、デプロイには関係ないです

Procfileは

web: gunicorn server:app --log-file=- 

として

heroku create
git push heroku master

とすればデプロイ完了です

heroku open

としてブラウザ上で確かめましょう。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1