Home Assistant自定义AddOn Docker镜像构建失败求助
问题分析
你遇到的no match for platform in manifest错误,本质是Docker拉取微软.NET 7基础镜像时,找不到当前Home Assistant设备架构对应的镜像版本。Home Assistant常用设备(如树莓派)多为ARM架构(aarch64/armhf),而默认的mcr.microsoft.com/dotnet/sdk:7.0、aspnet:7.0标签可能未覆盖这些架构,导致架构不匹配。
解决方案
1. 确认Home Assistant设备架构
先查看你的HA设备架构:进入HA后台 → 左侧菜单「设置」→「系统」→「硬件」,找到「处理器架构」(比如aarch64、amd64、armhf)。
2. 修改Dockerfile基础镜像
将基础镜像替换为支持多架构的Debian Bookworm版本标签,微软的这些标签覆盖了HA常用的所有架构:
FROM mcr.microsoft.com/dotnet/aspnet:7.0-bookworm-slim AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:7.0-bookworm AS build RUN apt-get update && apt-get install -y ffmpeg WORKDIR /src COPY ["src", "."] COPY ["*.sln", "."] COPY . . WORKDIR /src/src/FrigateSender RUN dotnet restore RUN dotnet build "FrigateSender.csproj" -c Release -o /app/build WORKDIR /src RUN dotnet test "FrigateSender.sln" "--logger:trx" WORKDIR /src/src/FrigateSender FROM build AS publish RUN dotnet publish "FrigateSender.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "FrigateSender.dll"]
3. 配置AddOn支持的架构
在AddOn的config.yaml文件中,明确声明支持的架构,确保HA能匹配设备架构进行构建:
arch: - aarch64 - amd64 - armhf - armv7
4. 本地测试构建(可选)
如果需要本地测试镜像,启用Docker Buildx并指定对应平台构建:
# 替换为你的设备架构,比如linux/amd64、linux/armhf docker buildx build --platform linux/arm64 -t frigate-sender-addon .
额外说明
微软.NET镜像的7.0通用标签,部分旧版本未同步所有架构的支持;而7.0-bookworm(SDK)和7.0-bookworm-slim(ASP.NET Runtime)是基于Debian 12的多架构镜像,完美适配Home Assistant的各类设备架构。
内容的提问来源于stack exchange,提问作者JensB
相关产品推荐
相关产品推荐

