首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.NET 5和Docker创建Azure函数

使用.NET 5和Docker创建Azure函数
EN

Stack Overflow用户
提问于 2021-07-20 18:57:48
回答 1查看 1.1K关注 0票数 4

有一些Azure函数使用一个独立的模型,它以程序外的语言工作者的形式运行,与Azure函数运行时分开。因为Azure函数运行时还不支持.NET5。

代码语言:javascript
复制
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <AzureFunctionsVersion>v3</AzureFunctionsVersion>
    <OutputType>Exe</OutputType>
    <_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
  </PropertyGroup>

我正在寻找一种如何将.NET func部署为Docker容器的方法。

代码语言:javascript
复制
func init LocalFunctionsProject --worker-runtime dotnet-isolated --docker 

对于.NET 3.1,我有Dockerfile

代码语言:javascript
复制
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS installer-env

COPY . /src/dotnet-function-app
RUN cd /src/dotnet-function-app && \
    mkdir -p /home/site/wwwroot && \
    dotnet publish *.csproj --output /home/site/wwwroot

FROM mcr.microsoft.com/azure-functions/dotnet:3.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]

如何将.NET5功能容器化?有可能吗?有什么解决办法吗?我还没找到解决办法。请建议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-27 21:55:33

好的,有两件事正在进行:

  1. 即使在.NET 5.0函数项目中,似乎是“故意的”。也仍然依赖于似乎是“故意的”。3.1CoreSDK
  2. 我们为带有--worker-运行时=dotnet-隔离-docker 缺少添加对.NET Core3.1的引用的关键行。的项目生成的Dockerfile

要解决这个问题,在Dockerfile中的第一个FROM语句之后添加以下行:

代码语言:javascript
复制
# Build requires 3.1 SDK
COPY --from=mcr.microsoft.com/dotnet/core/sdk:3.1 /usr/share/dotnet /usr/share/dotnet

Dockerfile:

代码语言:javascript
复制
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS installer-env
COPY --from=mcr.microsoft.com/dotnet/core/sdk:3.1 /usr/share/dotnet /usr/share/dotnet

COPY ./LocalFunctionsProject/ /src/dotnet-function-app
RUN cd /src/dotnet-function-app && \
    mkdir -p /home/site/wwwroot && \
    dotnet publish *.csproj --output /home/site/wwwroot

FROM mcr.microsoft.com/azure-functions/dotnet-isolated:3.0-dotnet-isolated5.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]

医生们将很快更新

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68460056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档