You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 02:35:11