開発環境
ホストマシン: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が待っているとのこと。
ブラウザで開いてみると
画面真ん中のLog inをクリックすると次のような画面が表示されてログイン成功のようです。
手元のコンソールにもどってみると
Logging in... done
と表示されました。ログインに成功したようです。
heroku createからheroku openまで
ここからさきはこちらの記事等を参考にしました。
今回はデータベースは使わないので
flask
gunicorn
feedparser #feedparaserはRSS取得用のライブラリ、デプロイには関係ないです
Procfileは
web: gunicorn server:app --log-file=-
として
heroku create
git push heroku master
とすればデプロイ完了です
heroku open
としてブラウザ上で確かめましょう。