趣味で計算流砂水理

趣味で計算流砂水理 Computational Sediment Hydraulics for Fun Learning

数値計算とか河川工学とかプログラミングのことを書いています

MENU

herokuでDockerを使う

スポンサーリンク

使用頻度が低くすぐにわすれるので備忘録として

よく使う人は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から確認できる。