なぜ Heroku の上で Docker を使用するアプリを実行するのか?
アプリをパッケージ化する業界標準の Docker を活用し、生産性の高い開発者体験、統合された継続デリバリ、管理されたインフラ基盤を提供する Heroku 上で運用することで、様々な恩恵を受けることができます。
開発/本番環境のシームレスな移行
ローカル環境で開発した Docker イメージを同一性を保ちながら本番環境に展開。ローカルマシンで動作するコードが、本番環境でも同じように動作することを確信しながらデプロイできます。
マネージドプラットフォーム
Docker を使用しているからといって、独自のコンテナインフラ環境を構築する必要はありません。Heroku を使用すると、コンテナオーケストレーション、インフラの維持、HTTP ルーティング、堅牢なアドオンエコシステム、世界規模で展開する SRE および運用チームといった、Heroku のメリットを得ることができます。
開発生産性を向上するワークフロー
開発者とチームの生産性を考慮して設計されたワークフローを使用して、アプリのビルドとデリバリを行いましょう。Heroku PipelineとReview Appsを活用して、アプリ開発プロセスを構造的で透明性が高く、かつシンプルに継続的デリバリのワークフローを実現できます。
Docker 化されたアプリのビルドをより高い生産性で
Docker 化されたアプリのビルドと実行
あなたのコードと Dockerfile をプッシュすれば、あとのアプリのビルドとデプロイは Heroku にお任せ。Heroku はコンテナオーケストレーションも行ってくれます。
Docker を利用してあなたのスタックをカスタマイズ
あなたが選択した OS パッケージマネージャを利用して、パッケージやライブラリをインストールできます。Heroku は、どんな OS ベースのイメージもサポートします。
Review Apps を使って変更点のテスト
プルリクエスト毎に自動的に Heroku の一時的なアプリが構築され、コードの変更を確認、テスト、検討することが可能です。
Docker で開発し、Heroku にデプロイ
ローカル環境では Docker を利用して、準備ができたらコードと Dockerfile をプッシュし、Heroku 上でビルドして Docker イメージをデプロイしましょう。
ビルド環境が数秒で起動
他のビルドシステムと違い、Heroku なら待ち時間なく Docker イメージのビルドを開始できます。
Docker Builds with heroku.yml is awesome. We've started to migrate to Docker, and Heroku allows us to maintain the same deployment method whilst enjoying the benefits of Docker.
Karl Freeman
Software Engineer, Zapnito