dotnet/sdk/5 を使用した DockerFile は $PATH に cmd 実行可能ファイルがないと言いますが、 /dotnet/framework/sdk:4.8 を使用すると正常に動作します
Dockerfile には .net Framework 4.8 (mcr.microsoft.com/dotnet/framework/sdk:4.8) が含まれており、VS ビルド ツールもインストールされます。
これはうまくいきます。
現在の要件は、4.8 dotnet/sdk:5.0 の代わりに .net 5.0 SDK を使用するようにアップグレードすることです。
DockerFile は以下のとおりです。
#FROM mcr.microsoft.com/dotnet/framework/sdk:4.8
FROM mcr.microsoft.com/dotnet/sdk:5.0
# Restore the default Windows shell for correct batch processing.
SHELL ["cmd", "/S", "/C"]
# Download the Visual Studio Build Tools bootstrapper.
ADD https://aka.ms/vs/16/release/vs_buildtools.exe C:\Temp\vs_buildtools.exe
# Use the latest release channel.
ADD https://aka.ms/vs/16/release/channel C:\Temp\VisualStudio.chman
# Set up environment to collect install errors.
COPY Install.cmd C:\Temp\
ADD https://aka.ms/vscollect.exe C:\Temp\collect.exe
# Modify MSVC C++ compiler, CMake, and MSBuild.
RUN c:\Temp\Install.cmd C:\Temp\vs_buildtools.exe modify `
--quiet --wait --norestart --nocache `
--installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools" `
--channelUri C:\Temp\VisualStudio.chman `
--installChannelUri C:\Temp\VisualStudio.chman `
--add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools;includeRecommended `
--add Microsoft.VisualStudio.Workload.VCTools;includeRecommended `
--add Microsoft.Component.MSBuild `
--add Microsoft.VisualStudio.Component.VC.ATLMFC
# Start developer command prompt with any other commands specified.
WORKDIR /src
ENTRYPOINT ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
私が得ているエラーは
container_linux.go:380: starting container process caused: exec: "cmd": executable file not found in $PATH
私の Docker デスクトップは WSL2 を使用し、インストールされている Linux ディストリビューションは Ubuntu 20.04 LTS です