【发布时间】:2021-08-31 12:59:45
【问题描述】:
我正在尝试在 Docker 容器中构建一个在 .net5 上运行的函数应用程序。到目前为止,我只是在尝试构建项目。
这是我目前拥有的dockerfile:
FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY "src/" "source/"
RUN dotnet restore "source/StorageManager/StorageManager.csproj"
COPY . .
WORKDIR "source/StorageManager"
RUN dotnet build "StorageManager.csproj" -c Release -o /app/build
这是我得到的错误:
Determining projects to restore...
Restored /tmp/efutopu1.pad/WorkerExtensions.csproj (in 4.21 sec).
WorkerExtensions -> /tmp/efutopu1.pad/buildout/Microsoft.Azure.Functions.Worker.Extensions.dll
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : It was not possible to find any compatible framework version [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : The framework 'Microsoft.NETCore.App', version '3.1.0' was not found. [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : - The following frameworks were found: [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : 5.0.9 at [/usr/share/dotnet/shared/Microsoft.NETCore.App] [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : You can resolve the problem by installing the specified framework and/or SDK. [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : The specified framework can be found at: [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=3.1.0&arch=x64&rid=debian.10-x64 [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : [/tmp/efutopu1.pad/WorkerExtensions.csproj]
/root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : Metadata generation failed. [/tmp/efutopu1.pad/WorkerExtensions.csproj]
Build FAILED.
问题
我不明白发生了什么。似乎Microsoft.Azure.Functions.Worker.Extensions.dll 包需要更多的东西,而不仅仅是.net5 运行时,但我不确定该怎么做。我应该使用以下图片之一
https://hub.docker.com/_/microsoft-azure-functions-base
或
https://hub.docker.com/_/microsoft-azure-functions-dotnet-isolated
【问题讨论】:
标签: c# docker dockerfile azure-functions .net-5