最終更新日 2024-09-25
.NET と Docker
秀丸とは直接関係がありませんが、Dockerについても触れます。
.NETは、PythonやRuby、NodeJSなどとは異なり、正式な仕組みとして、
「実行時にPCにインストールされたランタイムに依存しない形で配布」することが出来ます。
「この.dllや.exeはどのバージョンの.NETを使うか」の情報が付与されているため、
env環境を切り替えるなどといった発想は原則しません。
.NET5と.NET6の2つのランタイムをPCへとインストールしてあるから、どちらで実行されるのかわからない、
などということは無いのです。
このため、Dockerを使ってどうのこうのという利点がほとんどありません。
繰り返しますが、
- .NET Core 3.1 と .NET5 と .NET6のランタイムをPCへとインストールする
- コンパイル時に必要な.NETランタイムも一緒にビルドフォルダに出力されるため、それを配布ファイルに含める
このどちらかが定番のスタイルです。
それでも、なおもDockerに.NET環境を閉じて運営したいという場合、
以下を参照しDockerの記事を探してください。
.NET系のDockerコンテナ
Dockerを利用する場合、.NET系のコンテナを探すかと思いますが、
日々めまぐるしく更新されていきますので、
Docker Hubで
- dotnet
- aspnet
のいずれかで検索してお目当てのものを見つけるのが良いでしょう
.NET Core「サンプル」の Docker イメージのDockerイメージとしては
次の4つのものが候補となります。
- mcr.microsoft.com/dotnet/core/samples:dotnetapp
- mcr.microsoft.com/dotnet/core/samples:aspnetapp
- mcr.microsoft.com/dotnet/core/samples:wcfservice
- mcr.microsoft.com/dotnet/core/samples:wcfclient
.NET系のDockerコンテナへのアクセスの最も簡単な例
Dockerを利用するとすれば、その主な利用用途は、
単純に.NET系のコンソールの実行か、
もしくは ASP.NETサーバーの実行でしょう。
.NET コンソールアプリの実行
docker pull mcr.microsoft.com/dotnet/core/samples:dotnetapp
ASP.NETサーバーの実行
docker run -d -p 8080:80 mcr.microsoft.com/dotnet/core/samples:aspnetapp
ブラウザで
https://localhost:8080
へとアクセス。