diff --git a/docker-dev/Dockerfile b/docker-dev/Dockerfile index 15ec7781..e7c06897 100644 --- a/docker-dev/Dockerfile +++ b/docker-dev/Dockerfile @@ -3,7 +3,12 @@ # Compose drives OTOPCUA_ROLES + Cluster:* env per container to differentiate them. # A separate `migrator` stage (below) applies EF migrations once on bring-up. -FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +# Build stage is PINNED to linux/amd64. Per-cluster mesh Phase 3 added an in-repo .proto compiled by +# Grpc.Tools, whose bundled linux_arm64 `protoc` segfaults (exit 139) on Apple-Silicon Docker — so a +# native-arm64 build stage cannot generate the gRPC stubs. `dotnet publish` here is framework-dependent +# (portable IL + every RID's native assets), so the amd64-built output runs unchanged on the native +# runtime image below; only this one-time build is emulated, runtime stays native/fast. +FROM --platform=linux/amd64 mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src COPY . . RUN dotnet restore ZB.MOM.WW.OtOpcUa.slnx