问题描述
我有 .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**
如何在 Linux 容器中安装 dotnet core?
请通过分享一些例子来指导我。
解决方法
默认情况下,Azure Batch 任务的工作目录设置为根据作业和任务在 well-known location on the VM 中预设的路径。这个目录可以被环境变量 AZ_BATCH_TASK_WORKING_DIR
引用。
如果要在容器执行时显式设置容器镜像/Dockerfile指定的容器工作目录,则应将TaskContainerSettings
对象的WorkingDirectory
设置为{{ 3}}。