「[[.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のコンテナ化のケースをサンプルリング

*段階 [#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]]でも言及したとおり、~
コンテナ化にも下記のように段階があることが解る。~

-コレを開発~テストの工程に適合させるよう、~
プロジェクト構成やconfig設定値を変更して行くと良い。

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

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

-組み込むファイル類は、
--下位ディレクトリに配置するか、
--埋め込まれたりリソース化する。

-コンテナ化サポート機能の有効化~
[[コンテナ化で必要になること>https://opentouryo.osscons.jp/index.php?Docker%E5%AF%BE%E5%BF%9C]]。

***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)が必要になる。~
・必要に応じ、内部通信用HTTPのため、UseHttpsRedirection()を無効化する。

---クライアント側~
HTTPS化したサービスにアクセスするため、証明書検証周辺を制御する必要がある。~
(証明書検証の無効化や、内部通信のHTTPS → HTTP化などの方法も選択肢にある)

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

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

-RedirectとWebAPI

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

--WebAPIなど、コンテナ間の通信では、~
以下の名称を使用する必要がある。
---サービス名
---[[外部IPアドレスやDNS名>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参照の追加~
プロジェクト参照をDLL参照に切り替えた場合、~
参照先プロジェクトのNuGet参照を参照元にも追加。
参照先プロジェクトのNuGet参照(依存関係パッケージ)~
を、参照元にも追加する必要がある。

--組み込むファイル類
---リソース・ファイル
---参照アセンブリ

--ファイルの配置方法
---埋め込まれたリソース
---コピー(常にコピーする、新しい場合はコピーする)~
リンク・ファイルが使用できないと言う問題がある。

-Dockerfileは
--開発・デバッグ用のコンテナと、
--テスト以降用のコンテナで、

>大きく異るので注意が必要。

-ファイルのパスが変わる
--開発・デバッグ用はWindowsのパス(¥)が利用できる。
--テスト以降用はLinuxのパス(/)に設定の変更が必要。

※ [[参考 (.NET CoreのDockerfile)>#ka80a589]]

***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

**OSSコンソーシアム [#ka80a589]

***Wiki [#l1272c24]

-[[Docker]]
--[[Dockerコマンド]]
--[[Dockerファイル]]
--[[Dockerコンポーズ]]

-Docker対応 - Open 棟梁 Wiki~
https://opentouryo.osscons.jp/index.php?Docker%E5%AF%BE%E5%BF%9C

-マイクロソフト系技術情報 Wiki
--.NET CoreのDockerfile~
https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%20Core%E3%81%AEDockerfile
--コンテナのチェーン~
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

***Blog [#nd9441ef]
-第7回 部会 新Organization&Repositoryのコンセプト等の説明をしてみる。~
https://www.osscons.jp/joh22kyyf-537/

-第9回 部会 言うなれば、Open棟梁 for Dockerといった感じの物件のご紹介。~
https://www.osscons.jp/jofvzdsx9-537/

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS