「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- コンテナ化する際の設定ポリシーの設計メモ
- ASP.NET Coreのコンテナ化のケースをサンプルリング
前提 †
コンテナ化で必要になること。
段階 †
- コレを開発~テストの工程に適合させるよう、
プロジェクト構成やconfig設定値を変更して行くと良い。
非コンテナ上で実行 †
IIS Express上などでの実行。
プロジェクト構成 †
コンテナ化する事を念頭に置き、リソース類は、
する。
appsettings.json †
前述のプロジェクト構成に適合した設定を行う。
docker-compose.yml †
該当なし。
コンテナで実行(開発時) †
自分だけコンテナ上で実行、他はコンテナ外で実行。
プロジェクト構成 †
- Dockerサポート(Dockerfile)、若しくは、
コンテナ・オーケストレータ(docker-compose.yml)を追加。
- しかし、HTTPSには証明書が必要になり、この設定などが比較的煩雑である。
- サーバー側
サービスをHTTPS化するのに証明書(秘密鍵、PFX)が必要になる。
- クライアント側
HTTPS化したサービスにアクセスするため、証明書検証周辺を制御する必要がある。
(証明書検証の無効化や、内部通信のHTTPS → HTTP化などの方法も選択肢にある)
appsettings.json †
前述のプロジェクト構成に適合した設定を行う。
docker-compose.yml †
非コンテナ上の実行からコンテナ上の実行へ
変更する際に必要となる設定変更のテンプレ(コメント化)
- Redirectにはlocalhostを使用できるが、
- WebAPIなど、コンテナ間の通信では、
以下の名称を使用する必要がある。
- HTTPSのみホストポートとマップ
ports:
- "44300:5001"
コンテナで実行(テスト時) †
コンテナ・レジストリに登録する前段階。
プロジェクト構成 †
- 登録用のDockerfileでのビルドに
適合する構成に変更が必要になる。
- NuGet?参照の追加
プロジェクト参照をDLL参照に切り替えた場合、
参照先プロジェクトのNuGet?参照を参照元にも追加。
- Dockerfileは
- 開発・デバッグ用のコンテナと、
- ソレ以降(テスト以降)用のコンテナで、
大きく異るので注意が必要。
- ファイルのパスが変わる
- 開発・デバッグ用はWindowsのパス(¥)が利用できる。
- ソレ以降(テスト以降)用はLinuxのパス(/)に設定の変更が必要。
※ 参考 (.NET CoreのDockerfile)
appsettings.json †
全てコンテナで実行する場合の初期値として設定を行う。
docker-compose.yml †
設定無し or 全てコンテナで実行する場合のテンプレ設定(コメント化)。
全てコンテナで実行 †
- 全てコンテナで実行可能に構成するが、一部を、
主に開発のため、コンテナ環境から、離脱させることも可能にする。
プロジェクト構成 †
該当なし。
appsettings.json †
変更なし。
docker-compose.yml †
必要に応じて、既定値から、ユーザ毎の設定変更を行う。
参考 †
- Clarify the setting policy of the value in docker-compose.yml and appsettings.json.
Qiita †
Microsoft Docs †
OSSコンソーシアム †