'Deploy to Heroku' Buttonで、Dockerイメージを利用してDeploy

'Deploy to Heroku' Buttonを使った際に、Dockerイメージを利用してDeployする方法がわかりづらかったのでメモ。

‘Deploy to Heroku’ Button

対象のリポジトリに用意するものは次の3つ。

  • heroku.yml
  • app.json
  • Dockerfile

heroku.yml

最低限の記述は次のような感じ。 ※Node.jsアプリの例

build:
  docker:
    web: Dockerfile
run:
  web: node dist/index.js

app.json

いつものように書けばいいが、stack にはcontainer を指定する。

{
  "name": "kakuyomu feed API",
  "description": "Providing kakuyomu feed API",
  "repository": "https://github.com/bagpack/kakuyomu-feed",
  "keywords": ["node", "kakuyomu", "feed"],
  "stack": "container"
}

このcontainerオプションはドキュメントになぜか書いていない。

Dockerfile

いつものように書く。

リポジトリ

以上を実装したリポジトリがこちらになります。

参考

Docker Builds with heroku.yml (beta) | Heroku Dev Center

Container Registry & Runtime (Docker Deploys) | Heroku Dev Center