From 054ec4c3b672d42799b3aa3a026194dd2dbf37e3 Mon Sep 17 00:00:00 2001 From: bdchatham Date: Tue, 19 May 2026 13:13:52 -0700 Subject: [PATCH] fix(dockerignore): re-include runner/templates so the runner image builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #291 added the seitask-runner image to the ECR publish workflow, but the build fails at: COPY --from=builder /workspace/runner/templates /templates ERROR: failed to compute cache key: "/workspace/runner/templates": not found Root cause: .dockerignore is whitelist-style — it ignores everything (**) and re-includes only *.go, go.mod, go.sum, and *.sh. The runner/templates/ directory's .yaml.tmpl files were never on the re-include list because the controller image doesn't need them. The runner image does — they're baked into /templates/ at build time so the runner can render per-kind manifests at runtime. Add `!runner/templates/**` to the re-include list. Confirmed locally: `docker build -f runner/Dockerfile .` completes successfully. Same root cause as #287 (CRD generated but missed from config/crd/kustomization.yaml): a new component lands but the "what-to-include" list elsewhere doesn't pick it up. Worth filing a follow-up that lint-checks dockerignore re-includes against the runner Dockerfile's COPY paths, paralleling the kustomization check already on the followup list. --- .dockerignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.dockerignore b/.dockerignore index b8f67531..b8f82574 100644 --- a/.dockerignore +++ b/.dockerignore @@ -12,3 +12,10 @@ # Re-include embedded shell scripts !**/*.sh + +# Re-include the runner image's per-kind Go text templates. The runner +# Dockerfile (runner/Dockerfile) bakes runner/templates/ into the image +# at /templates/. Without this re-include the seitask-runner build fails +# at `COPY --from=builder /workspace/runner/templates /templates` with +# "not found". +!runner/templates/**