update docker build

Signed-off-by: James Strong <james.strong@chainguard.dev>
This commit is contained in:
James Strong 2023-06-12 18:28:25 -07:00
parent cbc68bc011
commit b3cf60d136
Failed to extract signature
2 changed files with 29 additions and 9 deletions

7
ingressctl/cmd/arch.go Normal file
View file

@ -0,0 +1,7 @@
package cmd
import "runtime"
func getArch() string {
return runtime.GOARCH
}

View file

@ -124,37 +124,50 @@ func dockerBuild() error {
fmt.Printf("Container Build Path: %v\n", dco.Path) 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("Base image: %s\n", dco.BuildArgs.BaseImage)
fmt.Printf("Build Args: %s\n", buildArgs) 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 return nil
} }
func buildArgs(b *BuildArgs) string { func buildArgs(b *BuildArgs) {
if b.BaseImage == "" { if b.BaseImage == "" {
base, err := getIngressNginxBase() base, err := getIngressNginxBase()
CheckIfError(err, "Issue Retrieving base image") CheckIfError(err, "Issue Retrieving base image")
fmt.Printf("Base Image set %s\n", base)
b.BaseImage = base b.BaseImage = base
} }
buildArgString := "--build-arg BASE_IMAGE=" + b.BaseImage if b.Version == "" {
b.Version = "1.0.0-dev"
return buildArgString }
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) { func getIngressNginxBase() (string, error) {
fmt.Print("GET INGRESS NGINX BASE")
dat, err := os.ReadFile("../NGINX_BASE") dat, err := os.ReadFile("../NGINX_BASE")
CheckIfError(err, "Could not read NGINX_BASE file") CheckIfError(err, "Could not read NGINX_BASE file")
fmt.Printf("Get Ingress Dat: %v\n", dat)
datString := string(dat) datString := string(dat)
//remove newline //remove newline
datString = strings.Replace(datString, "\n", "", -1) datString = strings.Replace(datString, "\n", "", -1)