From 512451c8d676c1590e849667ca2c3bf1281642ff Mon Sep 17 00:00:00 2001 From: Matthew Meszaros Date: Thu, 10 Sep 2026 19:05:01 +0200 Subject: [PATCH] feat: give every BuildKit cache mount an explicit id so the Dockerfiles build on hosted builders that reject an unnamed one, which is what stopped the backend, consumer, worker, forms, cli, updater and tracking images from building on Railway with 'flag --mount=type=cache is missing an id argument' --- deploy/docker/backend.Dockerfile | 6 +++--- deploy/docker/cli.Dockerfile | 6 +++--- deploy/docker/consumer.Dockerfile | 6 +++--- deploy/docker/forms.Dockerfile | 6 +++--- deploy/docker/updater.Dockerfile | 6 +++--- deploy/docker/worker.Dockerfile | 6 +++--- tracking/Dockerfile | 4 ++-- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/deploy/docker/backend.Dockerfile b/deploy/docker/backend.Dockerfile index 4b6601f1..db318667 100644 --- a/deploy/docker/backend.Dockerfile +++ b/deploy/docker/backend.Dockerfile @@ -22,11 +22,11 @@ RUN apk add --no-cache git ca-certificates && \ WORKDIR /app COPY go.mod go.sum ./ -RUN --mount=type=cache,target=/go/pkg/mod go mod download +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod go mod download COPY . . -RUN --mount=type=cache,target=/go/pkg/mod \ - --mount=type=cache,target=/root/.cache/go-build \ +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod \ + --mount=type=cache,id=gobuild,target=/root/.cache/go-build \ set -eux; \ if echo "$GO_TAGS" | grep -qw kafka; then CGO=1; TAGS="musl kafka"; else CGO=0; TAGS=""; fi; \ CGO_ENABLED=$CGO GOOS=$TARGETOS GOARCH=$TARGETARCH go build -tags "$TAGS" -ldflags="-s -w -X github.com/warmbly/warmbly/internal/version.Version=$VERSION -X github.com/warmbly/warmbly/internal/version.Commit=$COMMIT -X github.com/warmbly/warmbly/internal/version.BuiltAt=$BUILT_AT" -o /out/backend ./cmd/backend; \ diff --git a/deploy/docker/cli.Dockerfile b/deploy/docker/cli.Dockerfile index c2b9c3a7..53193f3a 100644 --- a/deploy/docker/cli.Dockerfile +++ b/deploy/docker/cli.Dockerfile @@ -15,11 +15,11 @@ ARG BUILT_AT="" WORKDIR /app COPY go.mod go.sum ./ -RUN --mount=type=cache,target=/go/pkg/mod go mod download +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod go mod download COPY . . -RUN --mount=type=cache,target=/go/pkg/mod \ - --mount=type=cache,target=/root/.cache/go-build \ +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod \ + --mount=type=cache,id=gobuild,target=/root/.cache/go-build \ CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build \ -ldflags="-s -w \ -X github.com/warmbly/warmbly/internal/version.Version=$VERSION \ diff --git a/deploy/docker/consumer.Dockerfile b/deploy/docker/consumer.Dockerfile index d1e1e3a7..70467636 100644 --- a/deploy/docker/consumer.Dockerfile +++ b/deploy/docker/consumer.Dockerfile @@ -14,11 +14,11 @@ RUN apk add --no-cache git ca-certificates && \ WORKDIR /app COPY go.mod go.sum ./ -RUN --mount=type=cache,target=/go/pkg/mod go mod download +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod go mod download COPY . . -RUN --mount=type=cache,target=/go/pkg/mod \ - --mount=type=cache,target=/root/.cache/go-build \ +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod \ + --mount=type=cache,id=gobuild,target=/root/.cache/go-build \ set -eux; \ if echo "$GO_TAGS" | grep -qw kafka; then CGO=1; TAGS="musl kafka"; else CGO=0; TAGS=""; fi; \ CGO_ENABLED=$CGO GOOS=$TARGETOS GOARCH=$TARGETARCH go build -tags "$TAGS" -ldflags="-s -w -X github.com/warmbly/warmbly/internal/version.Version=$VERSION -X github.com/warmbly/warmbly/internal/version.Commit=$COMMIT -X github.com/warmbly/warmbly/internal/version.BuiltAt=$BUILT_AT" -o /out/consumer ./cmd/consumer diff --git a/deploy/docker/forms.Dockerfile b/deploy/docker/forms.Dockerfile index 59dcf10e..cab6557c 100644 --- a/deploy/docker/forms.Dockerfile +++ b/deploy/docker/forms.Dockerfile @@ -26,11 +26,11 @@ RUN apk add --no-cache git ca-certificates WORKDIR /app COPY go.mod go.sum ./ -RUN --mount=type=cache,target=/go/pkg/mod go mod download +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod go mod download COPY . . -RUN --mount=type=cache,target=/go/pkg/mod \ - --mount=type=cache,target=/root/.cache/go-build \ +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod \ + --mount=type=cache,id=gobuild,target=/root/.cache/go-build \ CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags="-s -w -X github.com/warmbly/warmbly/internal/version.Version=$VERSION -X github.com/warmbly/warmbly/internal/version.Commit=$COMMIT -X github.com/warmbly/warmbly/internal/version.BuiltAt=$BUILT_AT" -o /out/forms ./cmd/forms # Runtime stage diff --git a/deploy/docker/updater.Dockerfile b/deploy/docker/updater.Dockerfile index dd278997..66278d97 100644 --- a/deploy/docker/updater.Dockerfile +++ b/deploy/docker/updater.Dockerfile @@ -13,11 +13,11 @@ RUN apk add --no-cache git ca-certificates WORKDIR /app COPY go.mod go.sum ./ -RUN --mount=type=cache,target=/go/pkg/mod go mod download +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod go mod download COPY . . -RUN --mount=type=cache,target=/go/pkg/mod \ - --mount=type=cache,target=/root/.cache/go-build \ +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod \ + --mount=type=cache,id=gobuild,target=/root/.cache/go-build \ CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags="-s -w -X github.com/warmbly/warmbly/internal/version.Version=$VERSION -X github.com/warmbly/warmbly/internal/version.Commit=$COMMIT -X github.com/warmbly/warmbly/internal/version.BuiltAt=$BUILT_AT" -o /out/updater ./cmd/updater # Runtime: the official docker CLI image already carries the compose plugin. diff --git a/deploy/docker/worker.Dockerfile b/deploy/docker/worker.Dockerfile index 5641f9c7..bf969c7e 100644 --- a/deploy/docker/worker.Dockerfile +++ b/deploy/docker/worker.Dockerfile @@ -14,11 +14,11 @@ RUN apk add --no-cache git ca-certificates && \ WORKDIR /app COPY go.mod go.sum ./ -RUN --mount=type=cache,target=/go/pkg/mod go mod download +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod go mod download COPY . . -RUN --mount=type=cache,target=/go/pkg/mod \ - --mount=type=cache,target=/root/.cache/go-build \ +RUN --mount=type=cache,id=gomod,target=/go/pkg/mod \ + --mount=type=cache,id=gobuild,target=/root/.cache/go-build \ set -eux; \ if echo "$GO_TAGS" | grep -qw kafka; then CGO=1; TAGS="musl kafka"; else CGO=0; TAGS=""; fi; \ CGO_ENABLED=$CGO GOOS=$TARGETOS GOARCH=$TARGETARCH go build -tags "$TAGS" -ldflags="-s -w -X github.com/warmbly/warmbly/internal/version.Version=$VERSION -X github.com/warmbly/warmbly/internal/version.Commit=$COMMIT -X github.com/warmbly/warmbly/internal/version.BuiltAt=$BUILT_AT" -o /out/worker ./cmd/worker diff --git a/tracking/Dockerfile b/tracking/Dockerfile index 2ef00e8b..f61ad5af 100644 --- a/tracking/Dockerfile +++ b/tracking/Dockerfile @@ -25,8 +25,8 @@ COPY scanner-networks.txt ./scanner-networks.txt # The binary is copied out of the (cache-mounted) target dir before the mount is # released, so the runtime stage can COPY it. -RUN --mount=type=cache,target=/usr/local/cargo/registry \ - --mount=type=cache,target=/app/target \ +RUN --mount=type=cache,id=cargo-registry,target=/usr/local/cargo/registry \ + --mount=type=cache,id=cargo-target,target=/app/target \ set -eux; \ if [ -n "$CARGO_FEATURES" ]; then FEAT="--features $CARGO_FEATURES"; else FEAT=""; fi; \ cargo build --release $FEAT; \