diff --git a/Dockerfile b/Dockerfile index 95314135..f9c7dce7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,6 +32,10 @@ COPY --from=frontend_dist / web/dist COPY cmd/ cmd/ COPY internal/ internal/ COPY migrations/ migrations/ +# The settings contract is a Go package (contracts/settings/v1) that embeds the +# manifest, so the binary carries the exact bytes it was built from. It lives +# outside internal/ because clients vendor these files. +COPY contracts/ contracts/ ARG BUILD_REVISION ARG BUILD_DIRTY=false RUN --mount=type=cache,target=/root/.cache/go-build \ diff --git a/Dockerfile.dev b/Dockerfile.dev index d6b69341..263f824e 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -29,6 +29,9 @@ COPY --from=frontend /app/web/dist web/dist COPY cmd/ cmd/ COPY internal/ internal/ COPY migrations/ migrations/ +# See Dockerfile: the settings contract is an embedded Go package outside +# internal/, so the build fails without it. +COPY contracts/ contracts/ # Stage 3: Build Go binary for dev using a local plugin SDK checkout passed via # BuildKit named context `silo_plugin_sdk`.