週末副業記

土日は副業エンジニアのブログです。副業に関することを投稿します。

Python + heroku でWebサービスをデプロイ(展開)する方法


f:id:aisakakun:20190317214140p:plain:w500
備忘録として書きます。

macOS:mojave バージョン10.14.3

Introduction - Deploy the app

下記サイトの手順を踏めば問題なくできます。
devcenter.heroku.com

herokuから過去作成したアプリケーションを消去する

qiita.com

注意

herokuでは最大5個までしかWebアプリケーションを立ち上げることはできません。(無料です)
すでにいくつか作成している場合は上記サイトを参考に消去します。

起動画面

起動したらこのような画面が出てきます。

f:id:aisakakun:20190317214140p:plain:w300

次回更新後、確認する方法

Getting Startedになっているので、Gを消してetting Startedにしてみます。

heroku login
git add .
git commit -m "Demo"
git push heroku master
heroku open

これらのコマンドでもう一度製作したサイトを拝めます。

f:id:aisakakun:20190318235101p:plain:w300

背景色を変更

    • base.html--
    .jumbotron {
        background: #87cefa;←変更点
        color: white;
        padding-bottom: 80px
    }

f:id:aisakakun:20190319000052p:plain:w300

Pythonの蛇になっているところをまずは自分のロゴにしたいですね。

localで確認する

毎回デプロイして確認するのも過程が多く面倒なので、localで確認できるようにします。
上記に挙げたチュートリアルではwindows用のlocal確認の手順が書かれています。
ここではmacOSでできるようになる手順を紹介します。
※python3

pip3 install -r requirements.txt
python3 manage.py collectstatic

heroku local web

と入力するとlocalでアプリケーション走ることができるのですが。。
以下のようになりました。

MacBook-Pro-XXX:python-getting-started XXX$ heroku local web
[OKAY] Loaded ENV .env File as KEY=VALUE Format
14:18:31 web.1   |  [2019-03-21 14:18:31 +0900] [4959] [INFO] Starting gunicorn 19.9.0
14:18:31 web.1   |  [2019-03-21 14:18:31 +0900] [4959] [INFO] Listening at: http://0.0.0.0:5000 (4959)
14:18:31 web.1   |  [2019-03-21 14:18:31 +0900] [4959] [INFO] Using worker: sync
14:18:31 web.1   |  [2019-03-21 14:18:31 +0900] [4962] [INFO] Booting worker with pid: 4962
14:18:59 web.1   |  Internal Server Error: /

この状態で「http://0.0.0.0:5000」にアクセスすると、うまく表示されませんでした。
エラー内容としてはpathが使用できないという内容でした。
下記サイトと同様の現象に見えたので、記述してある方法と同様の方法を試みました。
stackoverflow.com

そのコマンドはこちら。

pip3 install --upgrade django
python3 -m django --version # 2.0.2

djangoをアップグレードすれば直るということでした。
そして、再度試みます。

pip3 install -r requirements.txt
python3 manage.py collectstatic
heroku local web

f:id:aisakakun:20190321151002p:plain:w300
できました。

エラーが発生

下記エラーが発生しました。

15:51:30 web.1   |  [2019-03-22 15:51:30 +0900] [9303] [ERROR] Can't connect to ('0.0.0.0', 5000)

これを実行するとできるようになりました。

kill `lsof -ti tcp:5000`