到 Azure ACI 的基本容器化 ASP.NET 3.1 Core 应用部署失败

     2023-02-19     277

关键词:

【中文标题】到 Azure ACI 的基本容器化 ASP.NET 3.1 Core 应用部署失败【英文标题】:Basic containerised ASP.NET 3.1 Core app deployment to Azure ACI fails 【发布时间】:2020-11-12 19:08:57 【问题描述】:

我正在尝试将容器化的 ASP.NET Core 3.1 应用程序部署到 Azure Azure 容器实例 (ACI)。

该应用是全新创建的 Visual Studio 2019 Asp.NET Core Web 应用,支持 Docker。 它在本地构建和运行良好。

使用 Visual Studio 2019 中的发布向导在 Azure 容器注册表 (ACR) 中发布也成功。

当我尝试使用该映像(通过门户)将容器启动到 Azure 容器实例时,问题就出现了。这失败并出现以下错误:


"code":"DeploymentFailed",
"message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.",
"details":[
 "code":"BadRequest",
 "message":"
  \"error\": 
  \"code\": \"UnsupportedWindo wsVersion\",
  \"message\": \"Unsupported windows image version. Supported versions are 'Windows Server 2016 - Before 2B, Windows Server 2019 - Before 2B, Windows Server 2016 - After 2B, Windows Server 2019 - After 2B'\"
 
 "
]

在 DOCKERFILE 下方(与 Visual Studio 模板无关)

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-nanoserver-1903 AS build
WORKDIR /src
COPY ["WebApplication2/WebApplication2.csproj", "WebApplication2/"]
RUN dotnet restore "WebApplication2/WebApplication2.csproj"
COPY . .
WORKDIR "/src/WebApplication2"
RUN dotnet build "WebApplication2.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebApplication2.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication2.dll"]

我希望作为一个全新的 Visual Studio 应用程序,我不需要进行任何更改即可使其正常工作,但似乎并非如此。我应该怎么做才能解决这个问题?


更新 1:

更改 DOCKERFILE 1903 -> 1909

docker 检查图像:

   "Os": "windows",

   "OsVersion": "10.0.18363.959",

结果:没有变化,同样的错误信息


更新 2:

更改了 DOCKERFILE 1903 -> 2004

结果:Visual Studio 无法构建启动 (F5) 项目并出现以下错误:

错误 CTC1014 Docker 命令失败,退出代码为 1。 基于 Windows 版本 10.0.19041 的映像与 10.0.18363 主机 WebApplication2 C:\temp\WebApplication2\WebApplication2\Dockerfile 1 不兼容

新的 DOCKERFILE:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-2004 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-nanoserver-2004 AS build
WORKDIR /src
COPY ["WebApplication2/WebApplication2.csproj", "WebApplication2/"]
RUN dotnet restore "WebApplication2/WebApplication2.csproj"
COPY . .
WORKDIR "/src/WebApplication2"
RUN dotnet build "WebApplication2.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebApplication2.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication2.dll"]

【问题讨论】:

在这里查看可用版本hub.docker.com/_/microsoft-windows-nanoserver,并尝试其他版本。 我也有同样的问题。根据文档,我尝试了许多版本都在 2B 之后,但没有运气。你能弄明白吗? 这有什么更新吗? @AR你能解决这个问题吗? 【参考方案1】:

它对“2B 之前”和“2B 之后”感到满意,但“2B”。 Per MS 图像 (2B) 中有一个重大变化,后来被修复。

您是否可能在 2 月初就已经提取了这张图片?如果是这样,那么您可能正在发布该损坏的版本。尝试运行docker inspect <image_id> 并查看操作系统版本是否至少“10.0.18362.719”。如果没有,您可以删除该图像并提取新副本。

或者,您可以在 Dockerfile 中将“1903”都更改为“1909”或“2004”,然后尝试获取“2B”之后的更新版本的 nanoserver。

【讨论】:

我已经完成了你建议的所有步骤,我什至确保我使用的图像版本是 2B 后的,我仍然得到同样的错误。

azure容器实例未连接kafka集群

我有一个Azure容器实例,我想连接到同样位于azure的kafka。如果在kafka中使用dns配置advertised.listeners我可以连接,但是使用主机名我不能。在ACI中,我也无法ping/wget/telnet到其他内部资源,仅适用于其他ACI。vnetkafka=vnetA子网kafka=subnetA... 查看详情

Azure NSG 不阻止流向子网 ACI 的流量

...在为其配置安全性时遇到了障碍(很像here的人)。我的基本流程是这样的:Azure上的PIP->->使用PIP的负载均衡器可以通过更广泛的网络访问->->到后端子网 查看详情

Azure Fileshare - 使用 Docker-Compose 将不同的子文件夹/文件挂载到 ACI 上的卷

...上有不同的服务,这些服务会提取一些图像以在ACI上创建容器。当我 查看详情

在 azure 上正确的容器技术以实现长时间运行的服务

】在azure上正确的容器技术以实现长时间运行的服务【英文标题】:Correctcontainertechnolgyonazureforlongrunningservice【发布时间】:2020-10-1213:05:11【问题描述】:我想运行一个docker容器,该容器托管一个将长期运行的服务器(例如24x7)... 查看详情

在从 blob 存储中获取文件并传递给模型进行预测时出现 azure aci webservice 的超时错误

】在从blob存储中获取文件并传递给模型进行预测时出现azureaciwebservice的超时错误【英文标题】:Gettingtimeouterrorforazureaciwebservicewhilefetchingfilesfromblobstorageandpassingtothemodelforpredication【发布时间】:2021-10-0815:08:53【问题描述】:我正... 查看详情

正在修改或添加应用程序设置到在 linux 容器上运行的 azure 应用程序服务将回收站点

】正在修改或添加应用程序设置到在linux容器上运行的azure应用程序服务将回收站点【英文标题】:Ismodifyingoraddingappsettingstoazureappservicerunningonlinuxcontainerwillrecyclethesite【发布时间】:2021-12-2310:33:02【问题描述】:我们在linux应用... 查看详情

SQL Synapse,在 CREATE EXTERNAL TABLE 中使用动态/参数化 Azure 容器

】SQLSynapse,在CREATEEXTERNALTABLE中使用动态/参数化Azure容器【英文标题】:SQLSynapse,usedynamic/parameterizedAzureContainerinCREATEEXTERNALTABLE【发布时间】:2020-12-2404:42:46【问题描述】:我们有一个场景,源csv文件由客户隔离,即每个客户在Azu... 查看详情

azure App 服务部署为代码还是容器?

】azureApp服务部署为代码还是容器?【英文标题】:azureAppservicedeployascodeorcontainer?【发布时间】:2019-06-1402:14:09【问题描述】:我有用asp.netcore编写的api,可以轻松容器化,我想将这些api部署在azure应用服务中,但我无法决定是否... 查看详情

将 blob 从私有 blob 容器复制到 Azure 中的公共 blob 容器

】将blob从私有blob容器复制到Azure中的公共blob容器【英文标题】:CopyingblobfromprivateblobcontainertopublicblobcontainerinAzure【发布时间】:2020-01-1223:35:30【问题描述】:我们在Azure存储上有两个blob容器。一个是私人的,另一个是公共的。... 查看详情

是否可以将 Azure 文件共享中的单个文件/文件夹挂载到 Azure 容器实例

...是否可以将Azure文件共享中的单个文件/文件夹挂载到Azure容器实例【英文标题】:Isitpossibletomountasinglefile/folderfromAzureFileSharetoAzureContainerInstance【发布时间】:2021-11-1019:38:26【问题描述】:我尝试寻找一种可能的解决方案,说明如... 查看详情

用于容器 SSL 终止的 Azure 应用服务

】用于容器SSL终止的Azure应用服务【英文标题】:AzureAppServiceForContainersSSLTermination【发布时间】:2019-11-0202:11:10【问题描述】:目标:将网站部署到AzureAppService的容器中,该容器使用php-apache基础映像作为具有SSL的自定义域。现状... 查看详情

将存档上传到容器 blob Azure 中的特定文件夹

】将存档上传到容器blobAzure中的特定文件夹【英文标题】:UploadarchivetospecificfolderinContainerblobsAzure【发布时间】:2022-01-1216:11:58【问题描述】:如何将文件上传到Azure容器内的特定文件夹?我正在使用下面的代码,它工作正常,... 查看详情

如何使用不同的帐户将存储容器添加到 Azure?

】如何使用不同的帐户将存储容器添加到Azure?【英文标题】:HowcanIaddastoragecontainertoAzurewithdifferentaccount?【发布时间】:2015-07-3020:35:39【问题描述】:我们正在尝试为多个Outlook帐户使用公共数据。假设数据存储在属于data@outlook.c... 查看详情

无法将存储容器中的文件移动到 Azure 中的存档存储

】无法将存储容器中的文件移动到Azure中的存档存储【英文标题】:UnabletomovefilesinstoragecontainertoarchivestorageinAzure【发布时间】:2020-08-2915:26:16【问题描述】:我正在努力将一些文件/文件夹从容器中的冷层移动到存档存储中。我... 查看详情

无法创建从 Azure Blob 存储容器到 Azure Sql 数据库超大规模的外部数据源

】无法创建从AzureBlob存储容器到AzureSql数据库超大规模的外部数据源【英文标题】:Can\'tcreateanexternaldatasourcefromAzureBlobStorageContainertoAzureSqlDatabaseHyperscale【发布时间】:2020-12-1513:35:25【问题描述】:我已将单个文件(BlockBlob)上传到... 查看详情

如何使用 databricks 将一个 azure 数据湖容器中的所有内容传输到另一个容器?

】如何使用databricks将一个azure数据湖容器中的所有内容传输到另一个容器?【英文标题】:Howtotransferallthecontentsinoneazuredatalakecontainertoanotherusingdatabricks?【发布时间】:2021-03-1817:38:11【问题描述】:我有一个名为test-container的容器... 查看详情

使用 Nodejs 将文件从 Azure 存储 blob(容器)复制到 Azure 文件共享

】使用Nodejs将文件从Azure存储blob(容器)复制到Azure文件共享【英文标题】:CopyfilefromAzureStorageblob(Containers)toAzureFilesharesusingNodejs【发布时间】:2022-01-0721:13:57【问题描述】:有没有办法将文件从Azure容器(blob)复制到Azure文件共享... 查看详情

我需要将 SQL Azure 中的媒体内容(视频或图像)存储上传到 Azure BLOB 容器

...将SQLAzure中的媒体内容(视频或图像)存储上传到AzureBLOB容器【英文标题】:Ineedtouploadmediacontent(videoorimage)storageinSQLAzuretoAzureBLOBContainer【发布时间】:2020-12-2221:41:00【问题描述】:实际上,信息存储在BASE64中的varchar字段中。我... 查看详情