我正在尝试将 ASP.NET Web 应用程序部署到 Azure 容器实例,但出现此错误:
New-AzureRmContainerGroup:不支持映像“bwcontainercr.azurecr.io/azurecontainertest:v1”的操作系统版本。
以下是重现它的步骤:
文件、新建、项目、ASP .NET Web 应用程序(.NET 框架)
使用 .NET Framework 4.6.1
类型是 MVC
选中启用 Docker 支持
Dockerfile 包含
FROM microsoft/aspnet:4.7.1-windowsservercore-1709
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
我可以按 F5,它在本地 docker 容器中运行,没有任何问题。
我使用这个 PowerShell 部署到 Azure。
Connect-AzureRmAccount
New-AzureRmResourceGroup -Name "bwcontainertestrg"-Location "EastUS"
$registry = New-AzureRMContainerRegistry -ResourceGroupName "bwcontainertestrg" -Name "bwcontainercr" -EnableAdminUser -Sku Basic
$creds = Get-AzureRmContainerRegistryCredential -Registry $registry
$creds.Password | docker login $registry.LoginServer -u $creds.Username --password-stdin
$image = $registry.LoginServer + "/" + "azurecontainertest:v1"
docker tag "azurecontainertest:dev" $image
docker push $image
$secpasswd = ConvertTo-SecureString $creds.Password -AsPlainText -Force
$pscred = New-Object System.Management.Automation.PSCredential($creds.Username, $secpasswd)
$dnsname = "bwcontainertest-" + (Get-Random -Maximum 99999)
New-AzureRmContainerGroup -ResourceGroup "bwcontainertestrg" -Name "bwcontainertestcg" -Image $image -RegistryCredential $pscred -Cpu 1 -MemoryInGB 1 -DnsNameLabel $dnsname -OsType Windows
它给了我上面的错误。似乎基本映像与 Azure 容器实例不兼容。如果我尝试直接部署它,我会得到同样的错误
New-AzureRmContainerGroup -ResourceGroup bwContainerRG -Name "bwcontainertest-1709cg" -Image microsoft/aspnet:4.7.1-windowsservercore-1709 -RegistryCredential $pscred -Cpu 1 -MemoryInGB 1 -DnsNameLabel "bwcontainertest-1709" -OsType Windows
New-AzureRmContainerGroup :不支持映像“microsoft/aspnet:4.7.1-windowsservercore-1709”的操作系统版本。
这很糟糕,因为当您在 VS 中添加 docker 支持时,它会使用此映像。
我尝试了许多不同的图像。这个无需我的应用程序即可自行部署。
New-AzureRmContainerGroup -ResourceGroup bwContainerRG -Name "bwcontainertest-corecg" -Image microsoft/aspnet:4.7.1-windowsservercore -RegistryCredential $pscred -Cpu 1 -MemoryInGB 1 -DnsNameLabel "bwcontainertest-core" -OsType Windows
所以我在我的应用程序中引用了该图像。它在我本地机器上的容器中构建和运行。
我部署了它,它成功了。但是当我转到 URL 时,它给了我一个 403 错误。
我在这里想念什么?
TIA,比尔·沃罗汉