-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_ASPNETCoreContainerPolicy
- 戻る(Docker / .NET Core on Linux / Github上の成果物)
- ASP.NET Coreをコンテナ化する際の設定ポリシー
- ASP.NET Coreをスクラッチでコンテナ化する際の手順
- ASP.NET Coreのコンテナ化のケースをサンプリング
- コンテナ化する際の段階毎の設定ポリシーの設計メモ
-
コンテナのチェーンでも言及したとおり、
コンテナ化にも下記のように段階があることが解る。 -
コレを開発〜テストの工程に適合させるよう、
プロジェクト構成やconfig設定値を変更して行くと良い。
IIS Express上などでの実行。
コンテナ化する事を念頭に置き、
-
ファイルの配置方法
- プロジェクト出力に含めるか、
- 埋め込まれたりリソース化する。
-
コンテナ化サポート機能の有効化(Docker対応(
OTR_DockerSupport.md)の該当節を参照)。
前述のプロジェクト構成に適合した設定を行う。
該当なし。
自分だけコンテナ上で実行、他はコンテナ外で実行。
-
ファイルの配置方法
- プロジェクト出力に含めるか、
- 埋め込まれたりリソース化するか、
- ディレクトリに配置する。
(Visual Studioが自動的に処理する。.NET CoreのDockerfileの該当節を参照)
-
Dockerサポート
-
Dockerサポート(Dockerfile)、若しくは、
コンテナ・オーケストレータ(docker-compose.yml)を追加。 -
詳しくは Visual Studio Tools for Docker の該当節を参照。
-
-
HTTPとHTTPS
-
昨今、SameSite属性(3rd Party Cookie)やHTTPが利用し難くなってきている。
-
しかし、HTTPSには証明書が必要になり、この設定などが比較的煩雑である。
-
サーバー側
・サービスをHTTPS化するのに証明書(秘密鍵、PFX)が必要になる。
・必要に応じ、内部通信用HTTPのため、UseHttpsRedirection()を無効化する。 -
クライアント側
HTTPS化したサービスにアクセスするため、証明書検証周辺を制御する必要がある。
(証明書検証の無効化や、内部通信のHTTPS → HTTP化などの方法も選択肢にある)
-
-
前述のプロジェクト構成に適合した設定を行う。
非コンテナ上の実行からコンテナ上の実行へ
変更する際に必要となる設定変更のテンプレ(コメント化)
-
RedirectとWebAPI
-
Redirectにはlocalhostを使用できるが、
-
WebAPIなど、コンテナ間の通信では、
以下の名称を使用する必要がある。- サービス名
- 外部IPアドレスやDNS名(Docker for Windowsのネットワーク設定の該当節を参照)
-
-
HTTPとHTTPS
-
Endpointを2つ開ける。
environment: - UseUrl=http://0.0.0.0:5000/;https://0.0.0.0:5001/
-
HTTPSのみホストポートとマップ
ports: - "44300:5001"
-
コンテナ・レジストリに登録する前段階。
-
Docker Hubに登録する用の
Dockerファイルでのビルドに
適合する構成に変更が必要になる。-
NuGet参照の追加
プロジェクト参照をDLL参照に切り替えた場合、
参照先プロジェクトのNuGet参照(依存関係パッケージ)
を、参照元にも追加する必要がある。 -
ファイルの配置方法
- プロジェクト出力に含めるか、
(リンク・ファイルが使用できないと言う問題がある) - 埋め込まれたりリソース化するか、
- ディレクトリに配置する。
(Dockerファイルで明示的に配置する)
- プロジェクト出力に含めるか、
-
-
- 開発・デバッグ用のコンテナと、
- テスト以降用のコンテナで、
大きく異なるので注意が必要。
-
ファイルのパスが変わる
- 開発・デバッグ用はWindowsのパス(¥)が利用できる。
- テスト以降用はLinuxのパス(/)に設定の変更が必要。
※ 参考 (.NET CoreのDockerfile)(OSSコンソーシアムを参照)
全てコンテナで実行する場合の初期値として設定を行う。
設定無し or 全てコンテナで実行する場合のテンプレ設定(コメント化)。
-
コンテナ・レジストリに登録した後の利用段階。
-
全てコンテナで実行可能に構成するが、一部を、
主に開発のため、コンテナ環境から、離脱させることも可能にする。
該当なし。
変更なし。
必要に応じて、既定値から、ユーザ毎の設定変更を行う。
- Clarify the setting policy of the value in docker-compose.yml and appsettings.json.
- .Net Core で サーバー証明書の検証をスキップする
https://qiita.com/TsuyoshiUshio@github/items/f238a2a2c1483c287e4b
-
HTTPS 経由で Docker を使用して
ASP.NET Core イメージをホストする
https://docs.microsoft.com/ja-jp/aspnet/core/security/docker-https -
HTTPS 経由で Docker Compose を使用して
ASP.NET Core イメージをホストする
https://docs.microsoft.com/ja-jp/aspnet/core/security/docker-compose-https
-
Open 棟梁 Wiki
- Docker対応(
OTR_DockerSupport.md)
- Docker対応(
-
マイクロソフト系技術情報 Wiki
-
第7回 部会 新Organization&Repositoryのコンセプト等の説明をしてみる。
https://www.osscons.jp/joh22kyyf-537/ -
第9回 部会 言うなれば、Open棟梁 for Dockerといった感じの物件のご紹介。
https://www.osscons.jp/jofvzdsx9-537/
移行メモ
- 「ケースをサンプルリング」→「サンプリング」に修正した。
- 「大きく異る」→「大きく異なる」に修正した。
- 参考の見出し「OSSコンソーシアム」は、同ページ内から
#ka80a589で参照されており、GitHub Wiki のアンカに置き換えるにあたって 「OSSCコンソーシアム」と表記して一意にした。- Open 棟梁 Wiki(opentouryo.osscons.jp)への URL リンクは、 移行先のファイル名(予約名)に置き換えた。
- マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの コンテナのチェーン / .NET CoreのDockerfile / .NET CoreのDockerコンテナ化 / Visual Studio Tools for Docker / SameSite属性の件 / Docker for Windowsのネットワーク設定 に張り替えた。
- 同名の見出し(「プロジェクト構成」「appsettings.json」「docker-compose.yml」)が 段階ごとに重複し GitHub Wiki でアンカが衝突するため、 括弧で文脈を補って一意にした。
- PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名の該当節を参照)」の形に置き換えた。
Tags: 移行, ASP.NET Core, Docker, コンテナ化, docker-compose, appsettings.json, HTTPS, 設定ポリシー
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。