使用頻度が低くすぐにわすれるので備忘録として
よく使う人はheroku cliを使ったほうが良いですが、忘れてしまうのでguiでの操作を基本とします。
Herokuアカウントは作成済みとします。
基本作業
- Heroku dashbordから「Create new app」よりアプリを作成する。
- 「Depoy」タブの「Deployment method」からアプリの管理方法を選択。私はGithubを使うためリポジトリを設定しconnect
スタックの種類を変更
dockerを使うためにはスタックの種類を変更する必要があります。ここだけはheroku cliが必要です。
heroku cliのインストールは各々の環境で異なりますので 公式(The Heroku CLI | Heroku Dev Center)を参照下さい。
私の環境windows10のWSL ubuntsuの場合は、python3+bottleで作成したDockerコンテナをherokuへデプロイ(windows10のWSL環境) | Tech Memoを参照しました。
以下のコマンドによりスタックをcontainerに変更する。
heroku login # ブラウザが起動して認証画面が表示される heroku stack:set container -a <App name>
アプリケーションの準備
Dockerで動かすため、当然Dockerfileが必要ですが、デプロイをマニュフェストを記述するHeroku.ymlも必要になります。(毎回コマンドを打っても大丈夫です)
Heroku.ymlの最小構成はこんな感じです。
build: docker: web: Dockerfile run: web: command
注意点はDockerfileにCMDを書いた場合は、Herokuのrunは上書きされて無効になります。
詳細は以下を参照下さい。
Building Docker Images with heroku.yml | Heroku Dev Center How to deploy Synchronizer Docker Container in Heroku? – Split Help Center 【和訳】heroku.yml - Build Manifest (Developer Preview) - Qiita
デプロイ
Herokuのブラウザに戻って、「Depoy」タブの「Manual deploy」から「Deploy Branch」で完了。
「Depoy」タブの「Automatic deploys」をEnableに設定することによりgithubにpush時に自動でデプロイされる。
デプロイの状況は「Activity」タブで確認できる。
アプリの起動
画面右上の「Open app」ボタンでアプリを起動。動作のログは右上「More」ボタンはView logsから確認できる。