Help us understand the problem. What is going on with this article?

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

開発環境

ホストマシン: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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away