Azure iot edge:解决方案不会在 VSCode 中构建和推送 arm32v7 平台
Azure iot edge: Solution does not build and push for arm32v7 platform in VSCode
我使用 IoT 工具在 VScode 中创建了一个开箱即用的模板 c# 边缘解决方案,但在尝试构建和推送解决方案时出现以下错误:
Step 4/12 : RUN dotnet restore
---> Running in 22c6f8ceb80c
A fatal error occurred, the folder [/usr/share/dotnet/host/fxr] does not contain any version-numbered child folders
The command '/bin/sh -c dotnet restore' returned a non-zero code: 131
当它试图 运行 通过 Dockerfile.arm32v7 中的命令时,这显然发生了,其中包含以下内容:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster-arm32v7 AS build-env
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim-arm32v7
WORKDIR /app
COPY --from=build-env /app/out ./
RUN useradd -ms /bin/bash moduleuser
USER moduleuser
ENTRYPOINT ["dotnet", "SampleModule.dll"]
这仅在为 arm32v7 构建时发生,但适用于 amd64。我正在为在 raspberry pi 上使用而构建,所以我需要 arm32。
在我看来,我的环境可能有问题,但不确定去哪里找?
我还看到一些评论,如果你想让它工作,你需要在 ARM 主机上构建,但我之前没有在文档中看到过,从易于开发的角度来看没有意义
使用 az acr build
提交构建时,您可以传入参数 --platform linux/arm/v7
,它应该为您提供 ARM 构建环境。
如果您更喜欢在本地构建,可以尝试在 Dockerfile 的第一阶段使用 pulling the qemu package into the build context。
我使用 IoT 工具在 VScode 中创建了一个开箱即用的模板 c# 边缘解决方案,但在尝试构建和推送解决方案时出现以下错误:
Step 4/12 : RUN dotnet restore
---> Running in 22c6f8ceb80c
A fatal error occurred, the folder [/usr/share/dotnet/host/fxr] does not contain any version-numbered child folders
The command '/bin/sh -c dotnet restore' returned a non-zero code: 131
当它试图 运行 通过 Dockerfile.arm32v7 中的命令时,这显然发生了,其中包含以下内容:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster-arm32v7 AS build-env
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim-arm32v7
WORKDIR /app
COPY --from=build-env /app/out ./
RUN useradd -ms /bin/bash moduleuser
USER moduleuser
ENTRYPOINT ["dotnet", "SampleModule.dll"]
这仅在为 arm32v7 构建时发生,但适用于 amd64。我正在为在 raspberry pi 上使用而构建,所以我需要 arm32。
在我看来,我的环境可能有问题,但不确定去哪里找? 我还看到一些评论,如果你想让它工作,你需要在 ARM 主机上构建,但我之前没有在文档中看到过,从易于开发的角度来看没有意义
使用 az acr build
提交构建时,您可以传入参数 --platform linux/arm/v7
,它应该为您提供 ARM 构建环境。
如果您更喜欢在本地构建,可以尝试在 Dockerfile 的第一阶段使用 pulling the qemu package into the build context。