「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Github上の成果物]]

*目次 [#ua06450d]
#contents

*概要 [#kf0a4ee2]
-コンテナ化する際の設定ポリシーの設計メモ
-ASP.NET Coreのコンテナ化のケースをサンプルリング

*前提 [#v817a2e3]
[[コンテナ化で必要になること>https://opentouryo.osscons.jp/index.php?Docker%E5%AF%BE%E5%BF%9C]]。

*段階 [#m0eada45]
-[[コチラ(コンテナのチェーン)>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%81%AE%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3]]でも言及したとおり、~
コンテナ化にも下記のように段階があることが解る。~

-コレを開発~テストの工程に適合させていくと良い。

**非コンテナ上で実行 [#uc0e775c]
IIS Express上などでの実行。

***プロジェクト構成 [#fe01fd16]
コンテナ化する事を念頭に置き、リソース類は、

-下位ディレクトリに配置
-埋め込まれたりリソース化

する。


***appsettings.json [#b8e0cd89]
[[前述のプロジェクト構成>#fe01fd16]]に適合した設定を行う。

***docker-compose.yml [#a6d32575]
該当なし。

**コンテナで実行(開発時) [#caad45a8]
自分だけコンテナ上で実行、他はコンテナ外で実行。

***プロジェクト構成 [#xeef1c80]
-Dockerサポート

--Dockerサポート(Dockerfile)、若しくは、~
コンテナ・オーケストレータ(docker-compose.yml)を追加。

--[[詳しくはコチラ。>https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Tools%20for%20Docker#tf9569f1]]

-HTTPとHTTPS

--昨今、[[SameSite属性(3rd Party Cookie)>https://techinfoofmicrosofttech.osscons.jp/index.php?SameSite%E5%B1%9E%E6%80%A7%E3%81%AE%E4%BB%B6]]やHTTPが利用し難くなってきている。

--しかし、HTTPSには証明書が必要になり、この設定などが比較的煩雑である。
---サービスをHTTPS化するのに証明書(秘密鍵、PFX)が必要になる。
---HTTPS化したサービスにアクセスするため、証明書検証周辺を制御する必要がある。~
(証明書検証の無効化や、内部通信のHTTPS → HTTP化などの方法も選択肢にある)

***appsettings.json [#eb5142cd]
[[前述のプロジェクト構成>#xeef1c80]]に適合した設定を行う。

***docker-compose.yml [#f700c0b0]
非コンテナ上の実行からコンテナ上の実行へ~
変更する際に必要となる設定変更のテンプレ(コメント化)

-RedirectとWebAPI

--Redirectにはlocalhostを使用できるが、

--WebAPIなど、コンテナ間の通信では、~
以下の名称を使用する必要がある。
---サービス名
---[[外部IPアドレス>https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20for%20Windows%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A#o0ae51ae]]

-HTTPとHTTPS

--Endpointを2つ開ける。
 environment:
   - UseUrl=http://0.0.0.0:5000/;https://0.0.0.0:5001/

--HTTPSのみホストポートとマップ
 ports:
   - "44300:5001"

**コンテナで実行(テスト時) [#pd3905e9]
コンテナ・レジストリに登録する前段階。

***プロジェクト構成 [#p45648a7]
-登録用のDockerfileでのビルドに適合する構成に変更が必要になる。

--ファイルの配置
---リソース・ファイル
---参照アセンブリ

--NuGet参照の追加

-開発用のコンテナと、ソレ以降用のコンテナは大きく異る。
--

***appsettings.json [#e70e540d]
[[全てコンテナで実行する場合>#b20ab471]]の初期値として設定を行う。

***docker-compose.yml [#n43dfa6d]
設定無し or [[全てコンテナで実行する場合>#b20ab471]]のテンプレ設定(コメント化)。

**全てコンテナで実行 [#b20ab471]
コンテナ・レジストリに登録した後の利用段階。

***プロジェクト構成 [#w65f7a64]
該当なし。

***appsettings.json [#e5b73be2]
変更なし。

***docker-compose.yml [#iadaad79]
必要に応じて、既定値から、ユーザ毎の設定変更を行う。

*参考 [#xfcfb155]
-Clarify the setting policy of the value in docker-compose.yml and appsettings.json.
--https://github.com/NetDevInfraWGinOSSConsortium/MVCSampleOnDocker/issues/6
--https://github.com/NetDevInfraWGinOSSConsortium/OAuth2OidcArchitOnDocker/issues/1

**Qiita [#j5d536d7]
-.Net Core で サーバー証明書の検証をスキップする~
https://qiita.com/TsuyoshiUshio@github/items/f238a2a2c1483c287e4b

**Microsoft Docs [#kdd65856]
-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

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS