docs community blog github
Edit

Paketo Buildpacks で .NET Core アプリケーションをビルドする

This documentation explains how to use the Paketo .NET Core Buildpack to build applications for several common use-cases. For more in-depth description of the buildpack’s behavior and configuration see the Paketo .NET Core Buildpack Reference documentation.

サンプルアプリをビルドする

pack コマンドを使って、Paketo .NET Core Buildpack でサンプルアプリをビルドします。

git clone https://github.com/paketo-buildpacks/samples
cd samples/dotnet-core/aspnet
pack build my-app --buildpack gcr.io/paketo-buildpacks/dotnet-core \
  --builder paketobuildpacks/builder:base
copy to clipboard
Copied!

アプリケーションの実行方法は README ファイル を参照してください。

注意:この例では Paketo Base ビルダーを使っていますが、Paketo .NET Core Buildpack は Paketo Full ビルダーと互換性があります

.NET Core Runtime と ASP.NET のインストールするバージョンを指定する

Dotnet Core Runtime Cloud Native Buildpack と ASPNet Cloud Native Buildpack では、デプロイ時に使用する .NET Core Runtime と ASP.NET のバージョンを指定できるようになっています。 runtimeconig.json や、MSBuild のプロジェクトファイル、ビルド環境変数等で指定できます。 指定できるバージョンは、Dotnet Core Runtime Cloud Native Buildpack のリリースノートASPNet Cloud Native Buildpack のリリースノート で確認できる、それぞれの Buildpack が使用できるバージョンだけです。

アプリケーションの使用するランタイムフレームワークとして Microsoft.AspNetCore.AppMicrosoft.AspNetCore.All を宣言している場合、指定したバージョンの .NET Core Runtime と ASP.NET はビルドプロセスでのみ使用します。

環境変数 BP_DOTNET_FRAMEWORK_VERSION を指定する

デプロイ時に使用する .NET Core Runtime と ASP.NET のバージョンは、環境変数 $BP_DOTNET_FRAMEWORK で指定できます。 また、 プラットフォーム にフラグとして指定することもできますし、プロジェクトの project.toml で指定することもできます。 project.toml の内容について詳しく知りたいときは、Cloud Native Buildpacs の ドキュメント を参照してください。

pack build コマンドのフラグで指定する

pack build myapp --env BP_DOTNET_FRAMEWORK_VERSION=5.0.4
copy to clipboard
Copied!

project.toml で指定する

[[ build.env ]]
  name = 'BP_DOTNET_FRAMEWORK_VERSION'
  value = '5.0.4'
copy to clipboard
Copied!

注意:環境変数等でバージョンを指定しても、Buildpack はロールフォワードロジックを適用しません。ロールフォワードロジックについて詳しくは Microsoft のドキュメント を参照してください。

runtimeconfig.json を使用する

あなたのプロジェクトで runtimeconfig.json を使っているなら、そのファイル内で .NET Core Runtime のバージョンを指定できます。 アプリケーションをデプロイするとき、Buildpack に v2.1.14 の .NET Core Runtime を使わせるには次のように記述します。

{
  "runtimeOptions": {
    "framework": {
      "version": "2.1.14"
    }
  }
}
copy to clipboard
Copied!

プロジェクトファイルを使用する

あなたのプロジェクトが .csproj.fsproj.vbproj などのプロジェクトファイル を使っているなら、そのファイル内で .NET Core Runtime のバージョンを指定できます。 アプリケーションをデプロイするとき、Buildpack に v2.1.14 の .NET Core Runtime を使わせるには次のように記述します。

<Project>
  <PropertyGroup>
    <RuntimeFrameworkVersion>2.1.14</RuntimeFrameworkVersion>
  </PropertyGroup>
</Project>
copy to clipboard
Copied!

一方、アプリケーションが .NET Core Runtime のパッチバージョンに依存しない場合は、対象フレームワーク(TargetFramework)を指定して、Buildpack に .NET Core Runtime の適切なバージョンを選択させることができます。 Buildpack に .NET Core Runtime 2.1 を使わせるには、対象フレームワークを次のように記述します。

<Project>
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>
</Project>
copy to clipboard
Copied!

プロジェクトファイルに .NET Core Runtime のバージョンを指定する方法について、詳しくは Microsoft のドキュメント を参照してください。

非推奨:buildpack.yml を使用する

Dotnet Core Runtime Cloud Native Buildpack と ASPNet Cloud Native Buildpack の v1.0.0 から、buildpack.yml で .NET Core Runtime のバージョンを指定するのは非推奨になりました。 代わりに、環境変数 BP_DOTNET_FRAMEWORK_VERSION を指定するようにしてください。

特定バージョンの .NET SDK をインストールする

初期設定の Dotnet Core SDK Buildpack は、すでにインストールされている .NET Core Runtime と互換性のあるバージョンの SDK の、最新のパッチバージョンをインストールします。 Buildpack のバージョンに対応する利用可能な SDK のバージョンは Dotnet Core SDK Buildpack のリリースノート を参照してください。

ですが、.NET Core SDK のバージョンを buildpack.yml へ明示的に指定することもできます。

非推奨:buildpack.yml を使用する

Dotnet Core SDK Buildpack v1.0.0 から、buildpack.yml で .NET Core SDK のバージョンを指定するのは非推奨になりました。

.NET Core Runtime と .NET Core SDK は密結合しているし、ほとんどのユーザーは Dotnet Core Runtime Cloud Native Buildpack のインストールする .NET Core Runtime のバージョンを環境変数 BP_DOTNET_FRAMEWORK_VERSION で指定したほうがいいからです。 そうすれば、Dotnet Core SDK Buildpack はインストールされた .NET Core Runtime と互換性のあるバージョンの SDK を自動的にインストールします。

サブディレクトリのソースコードからアプリケーションのコンテナイメージをビルドする

初期設定の .NET Core paketo Buildpack はコードベースのルートディレクトリをプロジェクトディレクトリとして扱うようになっています。 C# や F# や Visual Basic のソースコードが配置されたものとして扱うのです。 ソースコードをサブディレクトリに配置している場合は、明示的にプロジェクトパスを指定しなければなりません。

環境変数 BP_DOTNET_PROJECT_PATH を指定する

ビルド時に使用するプロジェクトパスは、環境変数 $BP_DOTNET_PROJECT_PATH で指定できます。 また、 プラットフォーム にフラグとして指定することもできますし、プロジェクトの project.toml で指定することもできます。 project.toml の内容について詳しく知りたいときは、Cloud Native Buildpacs の ドキュメント を参照してください。

pack build コマンドのフラグで指定する

pack build my-app --env BP_DOTNET_PROJECT_PATH=./src/my-app
copy to clipboard
Copied!

project.toml で指定する

[[ build.env ]]
  name = 'BP_DOTNET_PROJECT_PATH'
  value = './src/my-app'
copy to clipboard
Copied!

非推奨:buildpack.yml を使用する

Dotnet Publish Cloud Native Buildpack と Dotnet Execute Cloud Native Buildpack の v1.0.0 から、buildpack.yml でプロジェクトパスを指定するのは非推奨になりました。 代わりに、環境変数 BP_DOTNET_PROJECT_PATH を指定するようにしてください。

独自の CA 証明書をインストールする

Paketo .NET Core Buildpack では、ビルド時や実行時のどちらでも、CA 証明書の構成 手順に従って、ユーザーが自分で用意した CA 証明書をコンテナのルートトラストストアへ配置できます。

Buildpack の設定する起動プロセスを変更する

Paketo .NET Core Buildpack では、Procfiles の導入 手順に従って、アプリケーションのコンテナイメージが起動するプロセスを変更できます。

アプリケーションを起動するときの環境変数を設定する

Paketo .NET Core Buildpack では、環境変数の構成 手順に従って、アプリケーションのコンテナイメージを実行するときの環境変数を変更できます。

アプリケーションのコンテナイメージにラベルを設定する

Paketo .NET Core Buildpack では、ラベルの構成 手順に従って、アプリケーションのコンテナイメージにラベルを指定できます。

Edit

Last modified: September 10, 2021