From bd636e8261807cd6c518c37eb7fc4249b0e5472c Mon Sep 17 00:00:00 2001 From: Bartek Tofel Date: Tue, 3 Mar 2026 17:20:29 +0100 Subject: [PATCH 1/4] do not use hardcoded CL_INSTALL_PRIVATE_PLUGINS when building images --- framework/docker.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/docker.go b/framework/docker.go index 46bc3c47c..8ac14204d 100644 --- a/framework/docker.go +++ b/framework/docker.go @@ -419,14 +419,14 @@ func BuildImageOnce(once *sync.Once, dctx, dfile, nameAndTag string, buildArgs m func BuildImage(dctx, dfile, nameAndTag string, buildArgs map[string]string) error { dfilePath := filepath.Join(dctx, dfile) if os.Getenv("CTF_CLNODE_DLV") == "true" { - commandParts := []string{"docker", "build", "--build-arg", `GO_GCFLAGS=all=-N -l`, "--build-arg", "CHAINLINK_USER=chainlink", "--build-arg", "CL_INSTALL_PRIVATE_PLUGINS=false"} + commandParts := []string{"docker", "build", "--build-arg", `GO_GCFLAGS=all=-N -l`, "--build-arg", "CHAINLINK_USER=chainlink"} for k, v := range buildArgs { commandParts = append(commandParts, "--build-arg", fmt.Sprintf("%s=%s", k, v)) } commandParts = append(commandParts, "-t", nameAndTag, "-f", dfilePath, dctx) return RunCommand(commandParts[0], commandParts[1:]...) } - commandParts := []string{"docker", "build", "--build-arg", "CHAINLINK_USER=chainlink", "--build-arg", "CL_INSTALL_PRIVATE_PLUGINS=false"} + commandParts := []string{"docker", "build", "--build-arg", "CHAINLINK_USER=chainlink"} for k, v := range buildArgs { commandParts = append(commandParts, "--build-arg", fmt.Sprintf("%s=%s", k, v)) } From 8dfb06478198eceb6bd7f6d992a271f9a3d6300b Mon Sep 17 00:00:00 2001 From: Bartek Tofel Date: Tue, 3 Mar 2026 17:45:44 +0100 Subject: [PATCH 2/4] pass GITHUB_TOKEN as secret to docker build, if it is present --- framework/docker.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/framework/docker.go b/framework/docker.go index 8ac14204d..1c6499d8b 100644 --- a/framework/docker.go +++ b/framework/docker.go @@ -418,11 +418,15 @@ func BuildImageOnce(once *sync.Once, dctx, dfile, nameAndTag string, buildArgs m func BuildImage(dctx, dfile, nameAndTag string, buildArgs map[string]string) error { dfilePath := filepath.Join(dctx, dfile) + if os.Getenv("CTF_CLNODE_DLV") == "true" { commandParts := []string{"docker", "build", "--build-arg", `GO_GCFLAGS=all=-N -l`, "--build-arg", "CHAINLINK_USER=chainlink"} for k, v := range buildArgs { commandParts = append(commandParts, "--build-arg", fmt.Sprintf("%s=%s", k, v)) } + if os.Getenv("GITHUB_TOKEN") != "" { + commandParts = append(commandParts, "--secret", "id=GIT_AUTH_TOKEN,env=GITHUB_TOKEN") + } commandParts = append(commandParts, "-t", nameAndTag, "-f", dfilePath, dctx) return RunCommand(commandParts[0], commandParts[1:]...) } @@ -430,6 +434,9 @@ func BuildImage(dctx, dfile, nameAndTag string, buildArgs map[string]string) err for k, v := range buildArgs { commandParts = append(commandParts, "--build-arg", fmt.Sprintf("%s=%s", k, v)) } + if os.Getenv("GITHUB_TOKEN") != "" { + commandParts = append(commandParts, "--secret", "id=GIT_AUTH_TOKEN,env=GITHUB_TOKEN") + } commandParts = append(commandParts, "-t", nameAndTag, "-f", dfilePath, dctx) return RunCommand(commandParts[0], commandParts[1:]...) } From b5d36d572f27bd80670cdd06dde1e05b448755fc Mon Sep 17 00:00:00 2001 From: Bartek Tofel Date: Wed, 4 Mar 2026 10:37:22 +0100 Subject: [PATCH 3/4] Build docker images with buildx --- framework/.changeset/v0.15.1.md | 1 + framework/docker.go | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/framework/.changeset/v0.15.1.md b/framework/.changeset/v0.15.1.md index 5c087ba54..e4112efea 100644 --- a/framework/.changeset/v0.15.1.md +++ b/framework/.changeset/v0.15.1.md @@ -1 +1,2 @@ - Set CL node image also as `CTF_CHAINLINK_IMAGE` env var in compat command +- Build docker images with buildx diff --git a/framework/docker.go b/framework/docker.go index 1c6499d8b..5e2f3d99a 100644 --- a/framework/docker.go +++ b/framework/docker.go @@ -420,7 +420,7 @@ func BuildImage(dctx, dfile, nameAndTag string, buildArgs map[string]string) err dfilePath := filepath.Join(dctx, dfile) if os.Getenv("CTF_CLNODE_DLV") == "true" { - commandParts := []string{"docker", "build", "--build-arg", `GO_GCFLAGS=all=-N -l`, "--build-arg", "CHAINLINK_USER=chainlink"} + commandParts := []string{"docker", "buildx", "build", "--build-arg", `GO_GCFLAGS=all=-N -l`, "--build-arg", "CHAINLINK_USER=chainlink"} for k, v := range buildArgs { commandParts = append(commandParts, "--build-arg", fmt.Sprintf("%s=%s", k, v)) } @@ -430,7 +430,7 @@ func BuildImage(dctx, dfile, nameAndTag string, buildArgs map[string]string) err commandParts = append(commandParts, "-t", nameAndTag, "-f", dfilePath, dctx) return RunCommand(commandParts[0], commandParts[1:]...) } - commandParts := []string{"docker", "build", "--build-arg", "CHAINLINK_USER=chainlink"} + commandParts := []string{"docker", "buildx", "build", "--build-arg", "CHAINLINK_USER=chainlink"} for k, v := range buildArgs { commandParts = append(commandParts, "--build-arg", fmt.Sprintf("%s=%s", k, v)) } From f4f53d69061ca2f05764a7afad25290719bd41c3 Mon Sep 17 00:00:00 2001 From: Bartek Tofel Date: Wed, 4 Mar 2026 11:17:43 +0100 Subject: [PATCH 4/4] update changeset --- framework/.changeset/v0.15.1.md | 1 - framework/.changeset/v0.15.2.md | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 framework/.changeset/v0.15.2.md diff --git a/framework/.changeset/v0.15.1.md b/framework/.changeset/v0.15.1.md index e4112efea..5c087ba54 100644 --- a/framework/.changeset/v0.15.1.md +++ b/framework/.changeset/v0.15.1.md @@ -1,2 +1 @@ - Set CL node image also as `CTF_CHAINLINK_IMAGE` env var in compat command -- Build docker images with buildx diff --git a/framework/.changeset/v0.15.2.md b/framework/.changeset/v0.15.2.md new file mode 100644 index 000000000..76410ae45 --- /dev/null +++ b/framework/.changeset/v0.15.2.md @@ -0,0 +1,2 @@ +- Don't set `CL_INSTALL_PRIVATE_PLUGINS` env var to `false` when building Docker images +- Build docker images with buildx