如何在 azure 批处理节点中安装 .netcore sdk

问题描述

我有 .net 核心控制台应用程序,它打印基本的 hello world 消息。我已将我的应用程序发布到 azure 容器注册表。

我的 Docker 文件

FROM mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim AS base
workdir /app

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
workdir /src
copY ["ConsoleApp1.csproj",""]
RUN dotnet restore "./ConsoleApp1.csproj"
copY . .
workdir "/src/."
RUN dotnet build "ConsoleApp1.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "ConsoleApp1.csproj" -c Release -o /app/publish
FROM base AS final
workdir /app
copY --from=publish /app/publish .
ENTRYPOINT ["dotnet","ConsoleApp1.dll"]

我已经创建了一个节点,请查看这张图片以便更好地理解: node-configuration1,node-configuration,node-config,task-config

我正在使用 Linux 容器与 azure 批处理集成,但是每当我运行我的任务时,它都说要安装

It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download**

Task_issue

如何在 Linux 容器中安装 dotnet core?

请通过分享一些例子来指导我。

解决方法

默认情况下,Azure Batch 任务的工作目录设置为根据作业和任务在 well-known location on the VM 中预设的路径。这个目录可以被环境变量 AZ_BATCH_TASK_WORKING_DIR 引用。

如果要在容器执行时显式设置容器镜像/Dockerfile指定的容器工作目录,则应将TaskContainerSettings对象的WorkingDirectory设置为{{ 3}}。