OpenShift Container Platform での .NET の使用開始
OpenShift Container Platform での .NET 8.0 のインストールと実行
概要
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 概要 リンクのコピーリンクがクリップボードにコピーされました!
NET イメージは、s2i-dotnetcore からイメージストリーム定義をインポートすることで OpenShift に追加されます。
イメージストリーム定義には、サポートされる異なるバージョンの .NET の sdk イメージが含まれる dotnet イメージストリームが含まれます。.NET プログラムのライフサイクルおよびサポートポリシー では、サポートされているバージョンの最新の情報をまとめています。
| バージョン | タグ | エイリアス |
|---|---|---|
| .NET 6.0 | dotnet:6.0-ubi8 | dotnet:6.0 |
| .NET 7.0 | dotnet:7.0-ubi8 | dotnet:7.0 |
| .NET 8.0 | dotnet:8.0-ubi8 | dotnet:8.0 |
sdk イメージには、dotnet-runtime イメージストリームで定義される対応するランタイムイメージがあります。
コンテナーイメージは、Red Hat Enterprise Linux と OpenShift の異なるバージョン間で機能します。UBI-8 ベースのイメージ (suffix -ubi8) は registry.access.redhat.com でホストされ、認証は必要ありません。
第2章 .NET イメージストリームのインストール リンクのコピーリンクがクリップボードにコピーされました!
.NET イメージストリームをインストールするには、s2i-dotnetcore のイメージストリーム定義と OpenShift Client (oc) バイナリーを使用してインストールされます。イメージストリームは、Linux、Mac、Windows からインストールできます。
.NET イメージストリームは、グローバルな openshift namespace で定義するか、プロジェクト namespace でローカルにストリームします。openshift namespace の定義を更新するには、十分な権限が必要です。
手順
イメージストリームをインストール (または更新) します。
oc apply [-n namespace] -f
$ oc apply [-n namespace] -f https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore/main/dotnet_imagestreams.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第3章 OpenShift Client を使用したアプリケーションのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションのデプロイメントに OpenShift クライアント (oc) を使用できます。アプリケーションはソースまたはバイナリーアーティファクトからデプロイできます。
3.1. oc を使用したソースからのアプリケーションのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、oc を使用した example-app アプリケーションのデプロイ方法を説明します。これは、redhat-developer/s2i-dotnetcore-ex GitHub リポジトリーの dotnet-8.0 ブランチの app ディレクトリーにあります。
手順
新しい OpenShift プロジェクトを作成します。
oc new-project sample-project
$ oc new-project sample-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow ASP .NET Core アプリケーションを追加します。
oc new-app --name=example-app 'dotnet:8.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnet-8.0' --build-env DOTNET_STARTUP_PROJECT=app
$ oc new-app --name=example-app 'dotnet:8.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnet-8.0' --build-env DOTNET_STARTUP_PROJECT=appCopy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドの進捗を追跡します。
oc logs -f bc/example-app
$ oc logs -f bc/example-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドが完了したら、デプロイされたアプリケーションを表示します。
oc logs -f dc/example-app
$ oc logs -f dc/example-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、プロジェクト内でアプリケーションにアクセスできます。
オプション: プロジェクトを外部からアクセス可能にします。
oc expose svc/example-app
$ oc expose svc/example-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 共有可能な URL を取得します。
oc get routes
$ oc get routesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. oc を使用したバイナリーアーティファクトからアプリケーションのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
.NET Source-to-Image (S2I) ビルダーイメージを使用して、提供するバイナリーアーティファクトを使用してアプリケーションをビルドできます。
前提条件
公開済みアプリケーション。
詳細は以下を参照してください。
手順
新しいバイナリービルドを作成します。
oc new-build --name=my-web-app dotnet:8.0-ubi8 --binary=true
$ oc new-build --name=my-web-app dotnet:8.0-ubi8 --binary=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドを開始し、ローカルマシンのバイナリーアーティファクトへのパスを指定します。
oc start-build my-web-app --from-dir=bin/Release/net8.0/publish
$ oc start-build my-web-app --from-dir=bin/Release/net8.0/publishCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規アプリケーションを作成します。
oc new-app my-web-app
$ oc new-app my-web-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 .NET 8.0 の環境変数 リンクのコピーリンクがクリップボードにコピーされました!
.NET イメージは、.NET アプリケーションのビルド動作を制御する複数の環境変数をサポートします。これらの変数はビルド設定の一部として設定したり、アプリケーションのソースコードリポジトリーの .s2i/environment ファイルに追加できます。
| 変数名 | 説明 | デフォルト |
|---|---|---|
| DOTNET_STARTUP_PROJECT |
実行するプロジェクトを選択します。これは、プロジェクトファイル ( |
|
| DOTNET_ASSEMBLY_NAME |
実行するアセンブリーを選択します。これには |
|
| DOTNET_PUBLISH_READYTORUN |
|
|
| DOTNET_RESTORE_SOURCES |
復元操作中に使用される NuGet パッケージソースのスペース区切りリストを指定します。これにより、 | |
| DOTNET_RESTORE_CONFIGFILE |
復元操作に使用される | |
| DOTNET_TOOLS |
アプリをビルドする前にインストールする .NET ツールのリストを指定します。 | |
| DOTNET_NPM_TOOLS | アプリケーションをビルドする前にインストールする NPM パッケージのリストを指定します。 | |
| DOTNET_TEST_PROJECTS |
テストするテストプロジェクトのリストを指定します。これは、プロジェクトファイルまたは、単一のプロジェクトファイルを含むディレクトリーである必要があります。各項目に対して | |
| DOTNET_CONFIGURATION |
Debug モードまたは Release モードでアプリケーションを実行します。この値は、 |
|
| DOTNET_VERBOSITY |
| |
| HTTP_PROXY, HTTPS_PROXY | アプリケーションをビルドおよび実行するときにそれぞれ使用される HTTP または HTTPS プロキシーを設定します。 | |
| DOTNET_RM_SRC |
| |
| DOTNET_SSL_DIRS |
非推奨: 代わりに | |
| SSL_CERT_DIR |
信頼する追加の SSL 証明書を含むディレクトリーまたはファイルのリストを指定します。証明書は、ビルド中に実行する各プロセスと、ビルド後のイメージで実行するすべてのプロセス (ビルドされたアプリケーションを含む) により信頼されます。項目は、絶対パス ( | |
| NPM_MIRROR | ビルドプロセス中にカスタム NPM レジストリーミラーを使用してパッケージをダウンロードします。 | |
| ASPNETCORE_URLS |
この変数は |
|
| DOTNET_RESTORE_DISABLE_PARALLEL |
|
|
| DOTNET_INCREMENTAL |
|
|
| DOTNET_PACK |
|
第5章 .NET 8.0 を使用したサンプルアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
5.1. MVC サンプルアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
s2i-dotnetcore-ex は、.NET のデフォルトの Model、View、Controller (MVC) テンプレートアプリケーションです。
このアプリケーションは、.NET S2I イメージによってサンプルアプリケーションとして使用され、Try Example リンクを使用して OpenShift UI から直接作成できます。
アプリケーションは、OpenShift クライアントバイナリー (oc) を使用して作成することもできます。
手順
oc を使用してサンプルアプリケーションを作成するには、以下を行います。
.NET アプリケーションを追加します。
oc new-app dotnet:8.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnet-8.0 --context-dir=app
$ oc new-app dotnet:8.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnet-8.0 --context-dir=appCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションによる外部アクセスを可能にします。
oc expose service s2i-dotnetcore-ex
$ oc expose service s2i-dotnetcore-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow 共有可能な URL を取得します。
oc get route s2i-dotnetcore-ex
$ oc get route s2i-dotnetcore-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. CRUD サンプルアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
s2i-dotnetcore-persistent-ex は、PostgreSQL データベースにデータを格納する単純な Create、Read、Update、Delete (CRUD) の .NET Core Web アプリケーションです。
手順
oc を使用してサンプルアプリケーションを作成するには、以下を行います。
データベースを追加します。
oc new-app postgresql-ephemeral
$ oc new-app postgresql-ephemeralCopy to Clipboard Copied! Toggle word wrap Toggle overflow .NET アプリケーションを追加します。
oc new-app dotnet:8.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-persistent-ex#dotnet-8.0 --context-dir app
$ oc new-app dotnet:8.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-persistent-ex#dotnet-8.0 --context-dir appCopy to Clipboard Copied! Toggle word wrap Toggle overflow postgresqlシークレットおよびデータベースサービス名環境変数から環境変数を追加します。oc set env dc/s2i-dotnetcore-persistent-ex --from=secret/postgresql -e database-service=postgresql
$ oc set env dc/s2i-dotnetcore-persistent-ex --from=secret/postgresql -e database-service=postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションによる外部アクセスを可能にします。
oc expose service s2i-dotnetcore-persistent-ex
$ oc expose service s2i-dotnetcore-persistent-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow 共有可能な URL を取得します。
oc get route s2i-dotnetcore-persistent-ex
$ oc get route s2i-dotnetcore-persistent-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow