質問: 'silentlycontinue'; powershell "install-windowsfeature -name net-framework-features -verbose"' returned a non-zero code: 1 インストールを試行せずにベアイメージをビルドして実行し(ステップ2/2)、3.5が表示される機能を確認することはオプションです。c:\>powershell "get-windowsfeature net*" display name name install state ------------ ---- ------------- [ ] .net framework 3.5 features net-framework-features available [ ] .net framework 3.5 (includes .net 2.0 and 3.0) net-framework-core removed [ ] http activation net-http-activation available [ ] non-http activation net-non-http-activ available [x] .net framework 4.8 features net-framework-45-fea... installed [x] .net framework 4.8 net-framework-45-core installed [ ] asp.net 4.8 net-framework-45-aspnet available [x] wcf services net-wcf-services45 installed [ ] http activation net-wcf-http-activat... available [ ] message queuing (msmq) activation net-wcf-msmq-activat... available [ ] named pipe activation net-wcf-pipe-activat... available [ ] tcp activation net-wcf-tcp-activati... available [x] tcp port sharing net-wcf-tcp-portshar... installed [ ] network virtualization networkvirtualization removed net-framework-45-aspnetを有効にしようとしましたが、正常に機能しているように見えますが、availableとしてリストされているのに対し、net-framework-coreはremovedとしてリストされています。removed状態を修正する方法を詳しく調べると、.cabのあるフォルダーが提案されます-osインストールisoからのファイルは-sourceとしてリストする必要があります。ただし、cmd sysinfoによって返されるos名は、対応するisoを持たないプレーンなmicrosoftを生成します。ダウンロードしてみました windows server 2019 iso そしてそのsource/sxsを-sourceとして使用し、最高のものを期待していますが、同じ誤った結果と出力(新しいdockerfile)があります:from mcr.microsoft.com/dotnet/framework/sdk # copy sources/sxs from windows server 2016 iso copy sources\sxs2016 c:\sources\sxs run powershell "install-windowsfeature net-framework-features -source c:\sources\sxs -verbose" これを機能させる方法はありますか?
回答: ベースコンテナで無効になっているwindowsupdateサービスを使用しようとしているため、エラーが発生しています。これは、ソースを含むローカルパスをインストーラーに直接提供する場合にも当てはまります。元のdockerfileを機能させる最も簡単な変更は、インストール前にwindowsupdateサービスを有効にすることです。from mcr.microsoft.com/dotnet/framework/sdk run powershell "set-service -name wuauserv -startuptype manual; install-windowsfeature -name net-framework-features -verbose" 同じアプローチは、.net framework3.5ソースがローカルにコピーされているpowershellスクリプトでも機能します。set-service -name wuauserv -startuptype "manual" write-output "installing windows feature .net framework 35" install-windowsfeature -name net-framework-features -source c:\net-framework35-features -verbose これは、単純さと保守性のために、microsoftが公式イメージで使用しているものと比較して依然として好ましい場合があります。特定のバージョンを直接参照し、必要に応じてそれらを更新します。