FlaskのDockerイメージをHerokuにデプロイする
はじめに
macOS環境の記事ですが、Windows環境も同じ手順になります。環境依存の部分は読み替えてお試しください。
目的
この記事を最後まで読むと、次のことができるようになります。
| No. | 概要 | キーワード |
|---|---|---|
| 1 | Dockerイメージのビルド/プッシュ | heroku container:push web |
| 2 | Dockerイメージのリリース | heroku container:release web |
実行環境
| 環境 | Ver. |
|---|---|
| macOS Catalina | 10.15.6 |
| Python | 3.7.3 |
| Heroku | 7.42.13 |
| Docker | 19.03.12 |
| Flask | 1.1.2 |
| gunicorn | 20.0.4 |
| Jinja2 | 2.11.2 |
| Werkzeug | 1.0.1 |
ソースコード
実際に実装内容やソースコードを追いながら読むとより理解が深まるかと思います。是非ご活用ください。
関連する記事
手順
1. Container Registry ログイン
command.sh
~% heroku container:login
2. サンプルコード取得
command.sh
~% git clone https://github.com/nsuhara/heroku-docker.git -b master
tree.sh
heroku-docker
├── Dockerfile
├── docker-compose.yml
├── docker_compose_up.sh
└── webapp
├── app.py
├── requirements.txt
├── tests
│ ├── __init__.py
│ └── tests.py
└── wsgi.py
3. ディレクトリ移動
command.sh
~% cd heroku-docker
4. Herokuアプリ作成
※今回のアプリ名は自動生成とします
command.sh
~% heroku create
Creating app... done, ⬢ {app-name}
5. リモートリポジトリ設定
command.sh
~% heroku git:remote -a {app-name}
6. イメージビルド & Container Registry プッシュ
command.sh
~% heroku container:push web
7. Container Registry リリース
command.sh
~% heroku container:release web
8. アプリ表示
command.sh
~% heroku open
おまけ
ローカル環境アプリ表示
command.sh
~% sh docker_compose_up.sh
command.sh
~% open http://0.0.0.0:5000/
コードチェック (pylint)
command.sh
~% python -B -m pylint --rcfile=.pylintrc -f parseable `find webapp -name "*.py" -not -path "webapp/tests"`
コードテスト (unittest)
command.sh
~% python -B -m unittest discover tests