Red Hat Training
A Red Hat training course is available for OpenShift Online
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 では、以下の手順を実行します。
- ビルダーイメージからコンテナーを起動します。
- アプリケーションソースをダウンロードします。
- ビルダーイメージコンテナーにスクリプトとアプリケーションソースをストリーミングします。
- (ビルダーイメージから) assemble スクリプトを実行します。
- 最終的なイメージを保存します。
ビルドプロセスの詳細のまとめについては、「S2I ビルドプロセス」を参照してください。
2.3.5. 環境変数
.NET Core イメージは、複数の環境変数をサポートします。 この環境変数を設定して、.NET Core アプリケーションのビルド動作を制御することができます。
S2I ビルド設定または .s2i/environment ファイルに、ビルドの動作を制御する環境変数を設定して、ビルドの手順で利用できるようにする必要があります。
表2.2 NET Core 環境変数
| 変数名 | 説明 | デフォルト |
|---|---|---|
|
| 実行するプロジェクトを選択します。これは、プロジェクトファイル (例: csproj または fsproj) か、単一のプロジェクトファイルを含むフォルダーでなければなりません。 |
|
|
|
実行するアセンブリーを選択します。これには、 | csproj ファイルの名前 |
|
| 復元操作時に使用する NuGet パッケージソースをスペース区切りの一覧で指定します。これは、NuGet.config ファイルで指定したすべてのソースよりも優先されます。 | |
|
|
アプリケーションをビルドする前にインストールする .NET ツールの一覧を指定します。固有のバージョンをインストールするには、パッケージ名の最後に | |
|
| アプリケーションをビルドする前にインストールする NPM パッケージの一覧を指定します。 | |
|
|
テストするテストプロジェクトの一覧を指定します。これは、プロジェクトファイルか、または単一のプロジェクトファイルを含むフォルダーでなければなりません。 | |
|
|
|
|
|
|
dotnet ビルドコマンドの詳細レベルを指定します。これを設定した場合には、環境変数がビルドの開始時に出力されます。変数は、msbuild の詳細値 ( | |
|
| アプリケーションのビルド時および実行時に使用する HTTP/HTTPS プロキシーを設定します。 | |
|
| ビルドプロセス中にパッケージをダウンロードするカスタムの NPM レジストリーミラーを使用します。 | |
|
|
この変数を |
|
|
|
| |
|
|
追加で信頼する SSL 証明書を使ってフォルダーおよびファイルの一覧を指定するために使用されます。証明書は、ビルド時に実行される各プロセス、およびビルドされたアプリケーションを含め、ビルド後にイメージで実行されるすべてのプロセスで信頼されます。使用される項目には、 | |
|
|
|
|
|
|
|
|
|
|
|
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