Skip to content

Commit ca3fa05

Browse files
[PRIV-200] Add build args to CTF (#2175)
1 parent 6f14dd5 commit ca3fa05

File tree

5 files changed

+20
-7
lines changed

5 files changed

+20
-7
lines changed

framework/.changeset/v0.10.33

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Support passing buildArgs to docker when building images

framework/components/clnode/clnode.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ type NodeInput struct {
5151
Name string `toml:"name"`
5252
DockerFilePath string `toml:"docker_file"`
5353
DockerContext string `toml:"docker_ctx"`
54+
DockerBuildArgs map[string]string `toml:"docker_build_args"`
5455
PullImage bool `toml:"pull_image"`
5556
CapabilitiesBinaryPaths []string `toml:"capabilities"`
5657
CapabilityContainerDir string `toml:"capabilities_container_dir"`
@@ -340,7 +341,7 @@ func newNode(in *Input, pgOut *postgres.Output) (*NodeOut, error) {
340341
}
341342
if req.Image == "" {
342343
req.Image = TmpImageName
343-
if err := framework.BuildImageOnce(once, in.Node.DockerContext, in.Node.DockerFilePath, req.Image); err != nil {
344+
if err := framework.BuildImageOnce(once, in.Node.DockerContext, in.Node.DockerFilePath, req.Image, nil); err != nil {
344345
return nil, err
345346
}
346347
req.KeepImage = false

framework/components/jd/jd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func NewJD(in *Input) (*Output, error) {
111111
}
112112
if req.Image == "" {
113113
req.Image = TmpImageName
114-
if err := framework.BuildImage(in.DockerContext, in.DockerFilePath, req.Image); err != nil {
114+
if err := framework.BuildImage(in.DockerContext, in.DockerFilePath, req.Image, nil); err != nil {
115115
return nil, err
116116
}
117117
req.KeepImage = false

framework/components/simple_node_set/node_set.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ func sharedDBSetup(in *Input, bcOut *blockchain.Output) (*Output, error) {
150150
PullImage: in.NodeSpecs[overrideIdx].Node.PullImage,
151151
DockerFilePath: in.NodeSpecs[overrideIdx].Node.DockerFilePath,
152152
DockerContext: in.NodeSpecs[overrideIdx].Node.DockerContext,
153+
DockerBuildArgs: in.NodeSpecs[overrideIdx].Node.DockerBuildArgs,
153154
CapabilitiesBinaryPaths: in.NodeSpecs[overrideIdx].Node.CapabilitiesBinaryPaths,
154155
CapabilityContainerDir: in.NodeSpecs[overrideIdx].Node.CapabilityContainerDir,
155156
TestConfigOverrides: net,

framework/docker.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -346,23 +346,33 @@ func SaveContainerLogs(dir string) ([]string, error) {
346346
return logFilePaths, nil
347347
}
348348

349-
func BuildImageOnce(once *sync.Once, dctx, dfile, nameAndTag string) error {
349+
func BuildImageOnce(once *sync.Once, dctx, dfile, nameAndTag string, buildArgs map[string]string) error {
350350
var err error
351351
once.Do(func() {
352-
err = BuildImage(dctx, dfile, nameAndTag)
352+
err = BuildImage(dctx, dfile, nameAndTag, buildArgs)
353353
if err != nil {
354354
err = fmt.Errorf("failed to build Docker image: %w", err)
355355
}
356356
})
357357
return err
358358
}
359359

360-
func BuildImage(dctx, dfile, nameAndTag string) error {
360+
func BuildImage(dctx, dfile, nameAndTag string, buildArgs map[string]string) error {
361361
dfilePath := filepath.Join(dctx, dfile)
362362
if os.Getenv("CTF_CLNODE_DLV") == "true" {
363-
return RunCommand("docker", "build", "--build-arg", `GO_GCFLAGS=all=-N -l`, "--build-arg", "CHAINLINK_USER=chainlink", "--build-arg", "CL_INSTALL_PRIVATE_PLUGINS=false", "-t", nameAndTag, "-f", dfilePath, dctx)
363+
commandParts := []string{"docker", "build", "--build-arg", `GO_GCFLAGS=all=-N -l`, "--build-arg", "CHAINLINK_USER=chainlink", "--build-arg", "CL_INSTALL_PRIVATE_PLUGINS=false"}
364+
for k, v := range buildArgs {
365+
commandParts = append(commandParts, "--build-arg", fmt.Sprintf("%s=%s", k, v))
366+
}
367+
commandParts = append(commandParts, "-t", nameAndTag, "-f", dfilePath, dctx)
368+
return RunCommand(commandParts[0], commandParts[1:]...)
369+
}
370+
commandParts := []string{"docker", "build", "--build-arg", "CHAINLINK_USER=chainlink", "--build-arg", "CL_INSTALL_PRIVATE_PLUGINS=false"}
371+
for k, v := range buildArgs {
372+
commandParts = append(commandParts, "--build-arg", fmt.Sprintf("%s=%s", k, v))
364373
}
365-
return RunCommand("docker", "build", "--build-arg", "CHAINLINK_USER=chainlink", "--build-arg", "CL_INSTALL_PRIVATE_PLUGINS=false", "-t", nameAndTag, "-f", dfilePath, dctx)
374+
commandParts = append(commandParts, "-t", nameAndTag, "-f", dfilePath, dctx)
375+
return RunCommand(commandParts[0], commandParts[1:]...)
366376
}
367377

368378
// RemoveTestContainers removes all test containers, volumes and CTF docker network

0 commit comments

Comments
 (0)