blog.bouzuya.net

2017-03-16 Heroku で Docker を使ってみた

Heroku で Docker を使ってみた。

Heroku は beta ではあるが Docker サポートをしている。詳細は公式のドキュメントを参照してほしい。 Container Registry and Runtime | Heroku Dev Center

特に迷うこともなく利用できた。 git push でアプリケーションが動くイメージから docker push でアプリケーションが動くイメージに変わる感じ。 pull してくれるともっと良い気もするけど、十分に良い。 Travis CI からの Heroku (Docker) へのデプロイも問題なく動いている。

いままでは bouzuya/mr-jums を直接 Node.js アプリケーションとして動かしていたのだけど、これからは Docker イメージ経由で Node.js アプリケーションとして動かすつもりだ。理由は次のツイートからの一連のツイートを見てほしい。

箇条書きすると次のような要求がある。

  • client-side のための js を Travis CI でビルドしたい。
  • client-side のための js を Amazon S3 にデプロイし、 CloudFront 経由で配信したい。
    • 最新のビルドだけでなく、過去のビルドも残したい。
  • client-side のための js は hash をつけたい (例: bundle-50fa479d58.js) 。
  • server-side のための js は client-side のための js を HTML に埋め込んで返したい (例: <script src="https://s3.amazonaws.com/bucket1/bundle-50fa479d58.js"></script>) 。
  • server-side のための js は Travis CI でビルドした際の hash を知りたい。
    • Docker image に埋め込もう。

mr-jums は最終的には静的ファイルを出力できるようにするつもりではあるのだけど、ほかにも業務の事情から検証しておきたい構成があって、 Docker + Amazon S3 + CloudFront を試したい。

上記の検証の第一歩として Heroku で Docker を試してみた。