「[[.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