今回は完成しているフラスクアプリをdockerfileから動かしherokuでデプロイするまでを記述します。
ネットを探してもあまりいい記事が見つからずあまり普段はほとんど見ることのない公式のドキュメントを見て実行することにしました。
heroku公式ドキュメント
###Dockerfile
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install python3 python3-pip -y
COPY . /home
WORKDIR /home
RUN pip3 install -r requirements.txt
RUN pip3 install email_validator
RUN ls /home
ENV FLASK_APP app.py
RUN echo $FLASK_APP
RUN flask db init
RUN flask db migrate
RUN flask db upgrade
RUN ls /home
CMD flask run -h 0.0.0.0 -p $PORT
herokuにdockerとしてデプロイする時に重要なのは下の行です。
CMD flask run -h 0.0.0.0 -p $PORT
$PORTについてはheroku側でうまくやってくれるらしいです。
###app.pyのrunさせるとこ
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True)
host='0.0.0.0'にしないといけない
###herokuへデプロイ作業
$ mkdir project
$ cd project
$ git clone <自分で作成したdockerfileが置いてあるリポジトリ>
$ heroku login
$ heroku create
$ heroku container:push web
$ heroku container:release web
$ heroku open
<>の中以外はそのまま入力しました。
###修正してまたデプロイするとき
$ heroku container:push web
$ heroku container:release web