2.3. .NET Core


2.3.1. .NET Core を使用する利点

.NET Core は、自動メモリー管理および最新のプログラム言語が搭載された、汎用の開発プラットフォームです。.NET Core では、効率的に高品質のアプリケーションをビルドできます。 .NET Core は、認定済みのコンテナー経由で Red Hat Enterprise Linux (RHEL 7) および OpenShift Online から利用できます。 .NET Core は以下の機能を提供します。

  • マイクロサービスベースのアプローチに従う機能。 この機能では、.NET でビルドされているコンポーネントと、Java でビルドされているコンポーネントがありますが、Red Hat Enterprise Linux や OpenShift Online でサポートされている一般的なプラットフォームにおいてすべて実行可能です。
  • Windows で新しい .NET Core ワークロードをより簡単に開発する機能。 Red Hat Enterprise Linux または Windows Server のいずれかでデプロイおよび実行が可能です。
  • 基礎となるインフラストラクチャーが Windows Server のみに依存することなしに、.NET アプリケーションを実行できる異種のデータセンター。
  • OpenShift Online から .NET、Java、Ruby および Python などの一般的な開発フレームワークの多くにアクセスできる機能。

2.3.2. サポートされているバージョン

  • .NET Core バージョン 2.2
  • .NET Core バージョン 2.1
  • .NET Core バージョン 1.1
  • .NET Core バージョン 1.0
  • Red Hat Enterprise Linux (RHEL) 7 でサポートされます。

.NET Core バージョン 2.2 関連のリリースの詳細は、『Release Notes for Containers』を参照してください。

.NET Core バージョン 2.1 関連のリリースの詳細は、『Release Notes for Containers』を参照してください。

バージョン 1.1 および 1.0 (rh-dotnetcore11 および rh-dotnetcore10) には project.json ビルドシステム (1.0.0-preview2 SDK) が同梱されています。RHEL システム以外にこの SDK をインストールする方法については、『version 1.1 Release Notes』の既知の問題についての章を参照してください。

2.3.3. イメージ

RHEL 7 イメージは、Red Hat レジストリーから入手できます。

$ docker pull registry.access.redhat.com/dotnet/dotnet-22-rhel7
$ docker pull registry.access.redhat.com/dotnet/dotnet-21-rhel7
$ docker pull registry.access.redhat.com/dotnet/dotnetcore-11-rhel7
$ docker pull registry.access.redhat.com/dotnet/dotnetcore-10-rhel7

これらのイメージは、dotnet イメージストリームで使用することができます。

2.3.4. ビルドプロセス

S2I は、ソースコードをコンテナーに挿入し、コンテナーにソースコードの実行を準備をさせることで、実行準備が整ったイメージを生成します。S2I では、以下の手順を実行します。

  1. ビルダーイメージからコンテナーを起動します。
  2. アプリケーションソースをダウンロードします。
  3. ビルダーイメージコンテナーにスクリプトとアプリケーションソースをストリーミングします。
  4. (ビルダーイメージから) assemble スクリプトを実行します。
  5. 最終的なイメージを保存します。

ビルドプロセスの詳細のまとめについては、「S2I ビルドプロセス」を参照してください。

2.3.5. 環境変数

.NET Core イメージは、複数の環境変数をサポートします。 この環境変数を設定して、.NET Core アプリケーションのビルド動作を制御することができます。

注記

S2I ビルド設定または .s2i/environment ファイルに、ビルドの動作を制御する環境変数を設定して、ビルドの手順で利用できるようにする必要があります。

表2.2 NET Core 環境変数
変数名説明デフォルト

DOTNET_STARTUP_PROJECT

実行するプロジェクトを選択します。これは、プロジェクトファイル (例: csproj または fsproj) か、単一のプロジェクトファイルを含むフォルダーでなければなりません。

.

DOTNET_ASSEMBLY_NAME

実行するアセンブリーを選択します。これには、.dll の拡張子を 含めないでください。これは、csproj で指定した出力アセンブリー名に設定します (PropertyGroup/AssemblyName)。

csproj ファイルの名前

DOTNET_RESTORE_SOURCES

復元操作時に使用する NuGet パッケージソースをスペース区切りの一覧で指定します。これは、NuGet.config ファイルで指定したすべてのソースよりも優先されます。

 

DOTNET_TOOLS

アプリケーションをビルドする前にインストールする .NET ツールの一覧を指定します。固有のバージョンをインストールするには、パッケージ名の最後に @<version> を追加します。

 

DOTNET_NPM_TOOLS

アプリケーションをビルドする前にインストールする NPM パッケージの一覧を指定します。

 

DOTNET_TEST_PROJECTS

テストするテストプロジェクトの一覧を指定します。これは、プロジェクトファイルか、または単一のプロジェクトファイルを含むフォルダーでなければなりません。 dotnet test はアイテムごとに呼び出されます。

 

DOTNET_CONFIGURATION

Debug または Release モードでアプリケーションを実行します。この値は、Release または Debug のいずれかに指定する必要があります。

Release

DOTNET_VERBOSITY

dotnet ビルドコマンドの詳細レベルを指定します。これを設定した場合には、環境変数がビルドの開始時に出力されます。変数は、msbuild の詳細値 (q[uiet]m[inimal], n[ormal]d[etailed] および diag[nostic]) の 1 つに設定できます。

 

HTTP_PROXY, HTTPS_PROXY

アプリケーションのビルド時および実行時に使用する HTTP/HTTPS プロキシーを設定します。

 

NPM_MIRROR

ビルドプロセス中にパッケージをダウンロードするカスタムの NPM レジストリーミラーを使用します。

 

ASPNETCORE_URLS

この変数を http://*:8080 に設定して ASP.NET Core がイメージが公開するポートを使用するように設定します。この値の変更は推奨 していません

http://*:8080

DOTNET_RM_SRC

true に設定されると、ソースコードはイメージに組み込まれません。

 

DOTNET_SSL_DIRS

追加で信頼する SSL 証明書を使ってフォルダーおよびファイルの一覧を指定するために使用されます。証明書は、ビルド時に実行される各プロセス、およびビルドされたアプリケーションを含め、ビルド後にイメージで実行されるすべてのプロセスで信頼されます。使用される項目には、/ で開始される絶対パスまたはソースリポジトリーのパスを指定できます (証明書など)。

 

DOTNET_RESTORE_DISABLE_PARALLEL

true に設定されている場合、複数プロジェクトを並行して復元する操作を無効にします。これにより、ビルドコンテナーが CPU 制限の値が低く設定された状態で実行されている場合にも復元タイムアウトのエラーが減少します。

false

DOTNET_INCREMENTAL

true に設定される場合、NuGet パッケージがインクリメンタルビルドに再利用できるように保持されます。

false

DOTNET_PACK

true に設定される場合、tar.gz ファイルが公開されたアプリケーションを含む /opt/app-root/app.tar.gz に作成されます。

 

2.3.6. .NET Core ソースからのアプリケーションのクイックデプロイ

重要

.NET イメージストリーム は最初にインストールする必要があります。標準インストールを実行した場合には、イメージストリームは存在します。

サンプルのリポジトリーに対して oc new-app を実行すると、イメージを使用してアプリケーションをビルドできます。

$ oc new-app dotnet:2.2~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnetcore-2.2 --context-dir=app
$ oc new-app dotnet:2.1~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnetcore-2.1 --context-dir=app
$ oc new-app dotnet:1.1~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnetcore-1.1 --context-dir=app
$ oc new-app dotnet:1.0~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnetcore-1.0 --context-dir=app
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.