From b3cf60d136ba8e19905f3ccd93a57369b1b4e74a Mon Sep 17 00:00:00 2001 From: James Strong Date: Mon, 12 Jun 2023 18:28:25 -0700 Subject: [PATCH] update docker build Signed-off-by: James Strong --- ingressctl/cmd/arch.go | 7 +++++++ ingressctl/cmd/docker.go | 31 ++++++++++++++++++++++--------- 2 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 ingressctl/cmd/arch.go diff --git a/ingressctl/cmd/arch.go b/ingressctl/cmd/arch.go new file mode 100644 index 000000000..a0c071252 --- /dev/null +++ b/ingressctl/cmd/arch.go @@ -0,0 +1,7 @@ +package cmd + +import "runtime" + +func getArch() string { + return runtime.GOARCH +} diff --git a/ingressctl/cmd/docker.go b/ingressctl/cmd/docker.go index 7bb70e7c5..3eb779070 100644 --- a/ingressctl/cmd/docker.go +++ b/ingressctl/cmd/docker.go @@ -124,37 +124,50 @@ func dockerBuild() error { fmt.Printf("Container Build Path: %v\n", dco.Path) - buildArgs := BuildArgs(dco.BuildArgs) + buildArgs(&dco.BuildArgs) fmt.Printf("Base image: %s\n", dco.BuildArgs.BaseImage) fmt.Printf("Build Args: %s\n", buildArgs) - session.Command("docker", "build", "--no-cache", "--pull", fmt.Sprintf("%v", buildArgs), fmt.Sprintf("%s", dco.Path)).Run() + session.Command("docker", "build", "--no-cache", "--pull", + "--build-arg", "BASE_IMAGE="+dco.BuildArgs.BaseImage, + "--build-arg", "VERSION="+dco.BuildArgs.Version, + "--build-arg", "TARGETARCH="+dco.BuildArgs.TargetArch, + "--build-arg", "COMMIT_SHA="+dco.BuildArgs.CommitSHA, + "--build-arg", "BUILD_ID="+dco.BuildArgs.BuildId, + dco.Path).Run() return nil } -func buildArgs(b *BuildArgs) string { +func buildArgs(b *BuildArgs) { if b.BaseImage == "" { base, err := getIngressNginxBase() CheckIfError(err, "Issue Retrieving base image") - fmt.Printf("Base Image set %s\n", base) b.BaseImage = base } - buildArgString := "--build-arg BASE_IMAGE=" + b.BaseImage - - return buildArgString + if b.Version == "" { + b.Version = "1.0.0-dev" + } + if b.TargetArch == "" { + b.TargetArch = getArch() + } + if b.CommitSHA == "" { + sha, _ := sh.Command("git", "rev-parse", "--short", "HEAD").Output() + b.CommitSHA = strings.TrimSpace(string(sha)) + } + if b.BuildId == "" { + b.BuildId = "UNSET" + } } func getIngressNginxBase() (string, error) { - fmt.Print("GET INGRESS NGINX BASE") dat, err := os.ReadFile("../NGINX_BASE") CheckIfError(err, "Could not read NGINX_BASE file") - fmt.Printf("Get Ingress Dat: %v\n", dat) datString := string(dat) //remove newline datString = strings.Replace(datString, "\n", "", -1)