コードをプッシュ。あとはビルドパックにお任せ。

BuildはCloud Native Buildpacks、Paketo、すべてのHerokuビルドパックに対応。アプリは変更なしでビルド・実行できます。

Cloud Native Buildpacks

オープンなビルドパック標準を採用

ビルドパックはソースコードを実行可能なアプリイメージに変換します。言語を検出し、依存関係をインストールし、プッシュのたびに本番対応のビルドを生成します。

BuildはHerokuのオリジナルビルドパックから生まれたオープンなCNCF標準、Cloud Native Buildpacks(CNB)を完全サポートしています。Paketoビルドパックやその他のCNB準拠ビルダーにも対応しています。

詳しくはbuildpacks.ioへ

> git push build main

-----> Building with buildpack heroku/ruby

-----> Installing Ruby 3.3

-----> Installing dependencies with Bundler

-----> Build succeeded. Releasing v42

公式サポートのビルドパック

Herokuが公式サポートするすべての言語ビルドパックが、そのままBuildで動作します。

Ruby

Rails、Sinatraなど、BundlerベースのあらゆるRubyアプリ。GemfileからRubyバージョンを自動検出します。

Node.js

Express、Next.jsなど、npm・Yarn・pnpmを使うNode.jsアプリ。ロックファイルに基づいて依存関係をインストールします。

Python

pip・Pipenv・PoetryでインストールするDjango、Flask、FastAPIアプリ。Pythonバージョンを自動選択します。

Java

Spring Bootを含むMavenベースのJavaアプリ。JDKバージョンはsystem.propertiesで指定できます。

PHP

Laravel、Symfonyなど、ComposerベースのPHPアプリ。PHP拡張とApache・nginxに対応します。

Go

GoモジュールからビルドするGoアプリ。go.modからGoバージョンを読み取ります。

Scala

sbtでコンパイルするScala・Play Frameworkアプリ。

Clojure

LeiningenでビルドするClojureアプリ。ビルド間で依存関係をキャッシュします。

Gradle

GradleでビルドするJava・Kotlin・Groovyアプリ。Spring BootなどのJVMフレームワークにも対応。

.NET

.NET SDKでビルドするASP.NET Core上のC#・F#アプリ。

Heroku互換

Herokuスタックと直接互換

Buildはおなじみのスタックをそのまま実行します:heroku-20、heroku-22、heroku-24、heroku-26。

オープン標準の礎となったHerokuビルドパックは、そのままBuild上で動作します。Herokuからアプリを移行する際は既存のビルドプロセスをそのまま維持できます。

Buildでのビルドパックの仕組みを見る
heroku-20 heroku-22 heroku-24 heroku-26

人気のコミュニティビルドパック

BuildはHerokuコミュニティビルドパックをそのまま実行できます。以下はコミュニティディレクトリで特に人気が高く、活発にメンテナンスされているビルドパックです。必要なものが古くなっている場合は、代替の検索やメンテナンスをお手伝いします。

ffmpeg

最新のffmpegによる音声・動画処理。

apt

DebianやUbuntuのパッケージをビルドにインストール。

jq

jqによるコマンドラインでのJSON処理。

p7zip

7-Zipによるアーカイブの圧縮・展開。

WebP binaries

WebP画像変換用のcwebp・dwebpバイナリ。

create-react-app

create-react-appで生成したReactアプリをデプロイ。

Datadog

Datadogエージェントをアプリと並行稼働させ、メトリクスとAPMを取得。

ImageMagick

最新のImageMagickによる画像処理。

pdftotext

popplerのpdftotextでPDFからテキストを抽出。

Puppeteer

PuppeteerとヘッドレスChromeの自動化に必要な依存関係。

subdir

リポジトリのサブディレクトリをプロジェクトルートとしてデプロイ。

PgBouncer

PostgreSQL向けのサーバーサイド接続プーリング。

必要なビルドパックが見つかりませんか?

必要なものをお知らせください。コミュニティビルドパックが古くなっている場合や、カスタムが必要な場合もお手伝いします。

お問い合わせ

Dockerfileを使いたい場合も対応しています。

Buildではビルドパックが最短ルートですが、それだけではありません。イメージを細かく制御したい場合は、Dockerfileやコンテナイメージから直接デプロイできます。

よくある質問

ビルドパックとは何ですか?

ビルドパックは、アプリケーションのソースコードを実行可能なアプリイメージに変換します。言語を検出し、依存関係をインストールして、本番向けのビルドを生成します。ビルドパックは2011年にHerokuが先駆けて開発し、現在はCNCFの標準となっています。

BuildはCloud Native Buildpacks(CNB)に対応していますか?

Buildは、オープンなCNCF標準であるCloud Native Buildpacksに完全対応しており、Paketoプロジェクトのビルドパックやその他のCNB準拠のビルダーも利用できます。

HerokuビルドパックはBuildと互換性がありますか?

従来のHerokuビルドパックは、公式にサポートされている言語ビルドパックもコミュニティ製のものも、変更なしでBuild上で動作します。ほとんどのアプリはビルドプロセスをまったく変えずにHerokuから移行できます。

BuildはどのHerokuスタックに対応していますか?

Buildはheroku-20、heroku-22、heroku-24のスタックに対応しており、今後登場するheroku-26スタックへの対応も予定しています。

カスタムやサードパーティのビルドパックは使えますか?

Buildは任意の公開ビルドパックリポジトリを利用でき、1つのアプリで複数のビルドパックを組み合わせることもできます。たとえば言語ビルドパックとaptを併用できます。設定方法はビルドパックガイドをご覧ください。

BuildへのデプロイにDockerfileは必要ですか?

いいえ。ビルドパックはDockerfileなしでソースコードから直接アプリをビルドしてデプロイします。コンテナを使いたい場合は、BuildはDockerfileとコンテナイメージのデプロイにも完全対応しています。