あらゆる言語でのアプリケーション開発を可能にする Heroku buildpack
Heroku buildpack は、Heroku でアプリケーションをコンパイルするために使用するオープンソーススクリプトを集めたもので、Heroku の多言語プラットフォームのバックボーンを担っています。buildpack を使用すると、Heroku のビルドシステムを拡張して好みの開発言語やカスタム要素をサポートできるようにしたり、特殊なバイナリパッケージをランタイムで使えるようにしたりすることができます。Heroku buildpack があれば、アプリケーションや開発チームに最適な言語やフレームワークを自由に選んでコードを書くことができます。
使用する Heroku buildpack によって、アプリケーションの開発プロセスや、コードの実行時に用意すべきアセットやランタイムが決まります。複雑なアプリケーションで複数の言語を実行する場合は、1 つのアプリケーションで複数の buildpack を使用することもできます。
Heroku は、公式にサポートしている各言語に対応する Heroku buildpack を提供しています。お使いの言語やフレームワークが Heroku のサポート対象でない場合は、カスタム buildpack を作成したり、Elements マーケットプレイスで 6,000 種類以上のサードパーティ製 buildpack から必要なものを選んで入手したりすることができます。
Heroku buildpack のしくみ
Heroku buildpack は、デプロイしたコードのコンパイルと、スラッグ(圧縮されあらかじめパッケージ化されたアプリケーションとランタイムのコピーで、Dyno Manager への配信に最適化されています)の作成を担います。buildpack は、依存関係ファイルの取得、生成されたアセットの出力、コンパイル済みコードの出力などのタクスを実行するスクリプトで構成されます。
Heroku プラットフォームで公式にサポートされている言語を使う場合は、必要な Heroku buildpack がビルドシステムによって自動的に検出されます。サポート対象外の言語を使う場合は、作業を開始する前にカスタム buildpack をインストールする必要があります。
-
Heroku にコードをデプロイ
-
Heroku がコードを分析して適切な buildpack を選択するか、アプリに割り当てられた buildpack を使用
-
Buildpack がアセットを取得して、コードをコンパイルし、アプリの slug を作成
-
Heroku buildpack とは
カスタム Heroku buildpack
オープンソースコミュニティが開発、運用するカスタム Heroku buildpack により、Elixir、Ember CLI、Meteor をはじめ、今後登場する新しい言語やフレームワークが幅広くサポートされます。Elements マーケットプレイスには、GitHub で公開されているオープンソース buildpack が大量に登録されています。Heroku buildpack の一覧は、こちらでご確認ください。
人気の buildpack :
Heroku 製 buildpack
Heroku は、幅広い言語とフレームワーク(Ruby、Python、Node.js、PHP、Go、Java、Scala、Clojure)を公式にサポートしています。サポート対象の言語とフレームワークについてはオープンソースの Heroku buildpack を作成してプラットフォームに統合しています。開発に着手した段階で、アプリケーションのコンパイルに必要な Heroku buildpack が自動的に検出されます。
Elements マーケットプレイスから入手可能な、公式にサポートされている buildpack については、こちらをご覧ください。
特殊な言語やフレームワークのサポートが必要な場合は
Elements マーケットプレイスから入手可能な 6,000 種類を超える Heroku buildpack をご覧ください。