.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • コンテナ化する際の段階毎の設定ポリシーの設計メモ
  • ASP.NET Coreのコンテナ化のケースをサンプルリング

詳細

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

非コンテナ上で実行

IIS Express上などでの実行。

プロジェクト構成

コンテナ化する事を念頭に置き、

  • ファイルの配置方法
    • プロジェクト出力に含めるか、
    • 埋め込まれたりリソース化する。

appsettings.json

前述のプロジェクト構成に適合した設定を行う。

docker-compose.yml

該当なし。

コンテナで実行(開発時)

自分だけコンテナ上で実行、他はコンテナ外で実行。

プロジェクト構成

  • ファイルの配置方法
  • Dockerサポート
  • HTTPとHTTPS
  • しかし、HTTPSには証明書が必要になり、この設定などが比較的煩雑である。
    • サーバー側
      ・サービスをHTTPS化するのに証明書(秘密鍵、PFX)が必要になる。
      ・必要に応じ、内部通信用HTTPのため、UseHttpsRedirection?()を無効化する。
  • クライアント側
    HTTPS化したサービスにアクセスするため、証明書検証周辺を制御する必要がある。
    (証明書検証の無効化や、内部通信のHTTPS → HTTP化などの方法も選択肢にある)

appsettings.json

前述のプロジェクト構成に適合した設定を行う。

docker-compose.yml

非コンテナ上の実行からコンテナ上の実行へ
変更する際に必要となる設定変更のテンプレ(コメント化)

  • RedirectとWebAPI
  • Redirectにはlocalhostを使用できるが、
  • HTTPとHTTPS
  • Endpointを2つ開ける。
    environment:
      - UseUrl=http://0.0.0.0:5000/;https://0.0.0.0:5001/
  • HTTPSのみホストポートとマップ
    ports:
      - "44300:5001"

コンテナで実行(テスト時)

コンテナ・レジストリに登録する前段階。

プロジェクト構成

  • NuGet?参照の追加
    プロジェクト参照をDLL参照に切り替えた場合、
    参照先プロジェクトのNuGet?参照(依存関係パッケージ)
    を、参照元にも追加する必要がある。
  • ファイルの配置方法
    • プロジェクト出力に含めるか、
      (リンク・ファイルが使用できないと言う問題がある)
    • 埋め込まれたりリソース化するか、
    • ディレクトリに配置する。
      Dockerファイルで明示的に配置する)
  • Dockerファイル
    • 開発・デバッグ用のコンテナと、
    • テスト以降用のコンテナで、

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

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

参考 (.NET CoreのDockerfile)

appsettings.json

全てコンテナで実行する場合の初期値として設定を行う。

docker-compose.yml

設定無し or 全てコンテナで実行する場合のテンプレ設定(コメント化)。

全てコンテナで実行

  • コンテナ・レジストリに登録した後の利用段階。
  • 全てコンテナで実行可能に構成するが、一部を、
    主に開発のため、コンテナ環境から、離脱させることも可能にする。

プロジェクト構成

該当なし。

appsettings.json

変更なし。

docker-compose.yml

必要に応じて、既定値から、ユーザ毎の設定変更を行う。

参考

Qiita

Microsoft Docs

OSSコンソーシアム

Wiki

Blog


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-05-18 (火) 15:33:42 (1067d)