.NET 8 for Dockerの特殊ディレクトリのパス
ベースイメージ
マイクロソフト謹製のdockerイメージを使用してます。普通のLinuxです。
FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
WORKDIR /app
.NET 6や.NET 7は試していません。
結果
| SpecialFolder | .NET 8 for Docker |
|---|---|
| Desktop | |
| Programs | |
| MyDocuments | |
| MyDocuments | |
| Favorites | |
| Startup | |
| Recent | |
| SendTo | |
| StartMenu | |
| MyMusic | |
| MyVideos | |
| DesktopDirectory | |
| MyComputer | |
| NetworkShortcuts | |
| Fonts | |
| Templates | |
| CommonStartMenu | |
| CommonPrograms | |
| CommonStartup | |
| CommonDesktopDirectory | |
| ApplicationData | |
| PrinterShortcuts | |
| LocalApplicationData | |
| InternetCache | |
| Cookies | |
| History | |
| CommonApplicationData | /usr/share |
| Windows | |
| System | |
| ProgramFiles | |
| MyPictures | |
| UserProfile | /root |
| SystemX86 | |
| ProgramFilesX86 | |
| CommonProgramFiles | |
| CommonProgramFilesX86 | |
| CommonTemplates | |
| CommonDocuments | |
| CommonAdminTools | |
| AdminTools | |
| CommonMusic | |
| CommonPictures | |
| CommonVideos | |
| Resources | |
| LocalizedResources | |
| CommonOemLinks | |
| CDBurning |
解説
docker版ではCommonApplicationDataとUserProfileしか返ってきません。
- dockerイメージ上にファイルは保存するな
- docker-composeでボリュームを明示してそこに保存しろ
ということでしょう。
コード
foreach (var folder in Enum.GetValues(typeof(Environment.SpecialFolder)))
{
var path = Environment.GetFolderPath((Environment.SpecialFolder)folder);
Console.WriteLine($"{folder} => {path}");
}