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

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やコンテナイメージから直接デプロイできます。

よくある質問

buildpack とは何ですか

アプリケーションのソースコードを、実行可能なアプリイメージに変換する仕組みです。言語を判別し、依存関係をインストールし、本番向けのビルドを生成します。これを buildpack と呼びます。2011年に Heroku が先駆けて導入し、現在は CNCF の標準になっています。

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

完全に対応しています。Cloud Native Buildpacks は CNCF が定めるオープンな標準で、Paketo プロジェクトの buildpack や、CNB に準拠した他のビルダーも利用できます。

Heroku の buildpack は Build で使えますか

はい、使えます。従来の Heroku buildpack は、そのまま Build で動きます。公式にサポートされている言語向けのものも、コミュニティ製のものも同様です。ほとんどのアプリは、ビルドの手順をまったく変えずに Heroku から移行できます。

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

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

独自の buildpack やサードパーティ製の buildpack を使えますか

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

デプロイに Dockerfile は必要ですか

いいえ、必要ありません。buildpack が Dockerfile なしでソースから直接ビルドしてデプロイします。コンテナを使いたい場合は、Dockerfile とコンテナイメージによるデプロイにも完全対応しています。