情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Herokuアプリケーションのビルドパックについて

Herokuアプリケーションの新しいコードをアップロードした場合にはHerokuアプリケーションのビルドが行われます。

このビルドを行うためのソフトウェアが纏められたものをビルドパックと言います。

ビルドパックにはHerokuアプリケーションのコードの種類に応じて様々なものがあります。

通常はHerokuアプリケーションのコードの種類に応じて適切なビルドパックが自動的に選択され、ビルドが行われますが、ビルドにおいて使用するビルドパックを手動で指定することもできます。

また、複数のビルドパックを1つのHerokuアプリケーションの1回のビルドにおいて使用することもできます。

ただし、この場合、ビルドパックを使用する順序が重要である場合もありますので注意してください。

また、Herokuアプリケーションのビルドにおいて使用するビルドパックを変更した場合であっても自動的に新しいビルドが行われる訳ではありませんので注意してください。

なお、主なビルドパックには下のようなものがあります。

  • heroku/ruby・・・Ruby言語のためのビルドパックです。
  • heroku/nodejs・・・Node.jsのためのビルドパックです。
  • heroku/clojure・・・Clojure言語のためのビルドパックです。
  • heroku/python・・・Python言語のためのビルドパックです。
  • heroku/java・・・Java言語のためのビルドパックです。
  • heroku/gradle・・・Gradle言語のためのビルドパックです。
  • heroku/scala・・・Scala言語のためのビルドパックです。
  • heroku/php・・・PHP言語のためのビルドパックです。
  • heroku/go・・・Go言語のためのビルドパックです。

ビルドパックの表示

Herokuアプリケーションのビルドにおいて使用されるビルドパックを表示するにはheroku buildpacksコマンドを実行します。

heroku buildpacksコマンドには下のようなオプションを付加することができます。

  • -a--app)・・・Herokuアプリケーションの名称を指定します。デフォルトは現在のフォルダに存在するHerokuアプリケーションの名称です。
  • -r--remote)・・・HerokuアプリケーションのGitリポジトリのリモートの名称を指定します。

たとえば、下のようにします。

C:\work\heroku\app1>heroku buildpacks
=== shrouded-refuge-29302 Buildpack URL
heroku/nodejs

ビルドパックの追加

Herokuアプリケーションのビルドにおいて使用されるビルドパックを追加するにはheroku buildpacks:addコマンドを実行します。

第1引数にビルドパックの名称又はビルドパックのGitリポジトリのURI(URL)を指定します。

また、heroku buildpacks:addコマンドには下のようなオプションを付加することができます。

  • -a--app)・・・Herokuアプリケーションの名称を指定します。デフォルトは現在のフォルダに存在するHerokuアプリケーションの名称です。
  • -r--remote)・・・HerokuアプリケーションのGitリポジトリのリモートの名称を指定します。
  • -i--index)・・・ビルドパックを全てのビルドパックの中で何番目に使用するかを指定します。指定しなかった場合には最後に使用するビルドパックとして追加されます。

たとえば、下のようにします。

C:\work\heroku\app1>heroku buildpacks:add heroku/ruby
Buildpack added. Next release on shrouded-refuge-29302 will use:
  1. heroku/nodejs
  2. heroku/ruby
Run git push heroku master to create a new release using these buildpacks.

ビルドパックの設定

Herokuアプリケーションのビルドにおいて使用されるビルドパックを設定し直すにはheroku buildpacks:setコマンドを実行します。

第1引数にビルドパックの名称又はビルドパックのGitリポジトリのURI(URL)を指定します。

また、heroku buildpacks:setコマンドには下のようなオプションを付加することができます。

  • -a--app)・・・Herokuアプリケーションの名称を指定します。デフォルトは現在のフォルダに存在するHerokuアプリケーションの名称です。
  • -r--remote)・・・HerokuアプリケーションのGitリポジトリのリモートの名称を指定します。
  • -i--index)・・・ビルドパックを全てのビルドパックの中で何番目に使用するかを指定します。デフォルトは1です。

たとえば、下のようにします。

C:\work\heroku\app1>heroku buildpacks:set heroku/clojure
Buildpack set. Next release on shrouded-refuge-29302 will use:
  1. heroku/clojure
  2. heroku/ruby
Run git push heroku master to create a new release using these buildpacks.

ビルドパックの削除

Herokuアプリケーションのビルドにおいて使用されるビルドパックを削除するにはheroku buildpacks:removeコマンドを実行します。

第1引数にビルドパックの名称又はビルドパックのGitリポジトリのURI(URL)を指定します。

また、heroku buildpacks:removeコマンドには下のようなオプションを付加することができます。

  • -a--app)・・・Herokuアプリケーションの名称を指定します。デフォルトは現在のフォルダに存在するHerokuアプリケーションの名称です。
  • -r--remote)・・・HerokuアプリケーションのGitリポジトリのリモートの名称を指定します。
  • -i--index)・・・全てのビルドパックの中で何番目に使用するビルドパックを削除するかを指定します。

たとえば、下のようにします。

C:\work\heroku\app1>heroku buildpacks:remove heroku/ruby
Buildpack removed. Next release on shrouded-refuge-29302 will use heroku/clojure.
Run git push heroku master to create a new release using this buildpack.

ビルドパックのクリア

Herokuアプリケーションのビルドにおいて使用される全てのビルドパックを削除するにはheroku buildpacks:clearコマンドを実行します。

heroku buildpacks:clearコマンドには下のようなオプションを付加することができます。

  • -a--app)・・・Herokuアプリケーションの名称を指定します。デフォルトは現在のフォルダに存在するHerokuアプリケーションの名称です。
  • -r--remote)・・・HerokuアプリケーションのGitリポジトリのリモートの名称を指定します。

たとえば、下のようにします。

C:\work\heroku\app1>heroku buildpacks:clear
Buildpacks cleared. Next release on shrouded-refuge-29302 will detect buildpack normally.
pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Heroku