.NET 8 for Dockerの特殊ディレクトリのパス

提供:MonoBook
2024年9月20日 (金) 05:11時点におけるAdministrator (トーク | 投稿記録)による版 (→‎結果)

ベースイメージ

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}");
}