variable "registry" { default = "repo.nstart.local" } variable "base_repo" { default = "repo.nstart.local/nstart/" } function "oci_labels" { params = [name, version] result = { "org.opencontainers.image.version" = version, "org.opencontainers.image.vendor" = "New Start", "org.opencontainers.image.authors" = "Sychev Nikita ", "org.opencontainers.image.base.name" = "${base_repo}${name}:${version}", "org.opencontainers.image.title" = "Base image for ${name} with custom CA and local repos", "org.opencontainers.image.description" = "Slim base image for ${name} with internal CA and local package mirrors", } } function "image_ref" { params = [name] result = registry != "" ? "${registry}/nstart/${name}" : "nstart/${name}" } target "image" { name = join("-", compact([ replace(combo.version, ".", "-") ])) matrix = { combo = [ { version = "jdk17-noble", dockerfile="Dockerfile.jdk" }, { version = "3.14-slim-trixie", dockerfile="Dockerfile.python" }, { version = "25-trixie-slim", dockerfile="Dockerfile.node" } ] } platforms = ["linux/amd64"] output = ["type=image"] attest = [ "type=sbom,generator=${registry}/docker/buildkit-syft-scanner:stable-1", "type=provenance,mode=max" ] context = "." dockerfile = combo.dockerfile args = { BASE_REPO = base_repo BASE_TAG = combo.version } tags = [ "${image_ref("svace")}:${combo.version}", "${image_ref("svace")}:latest", ] labels = oci_labels("svace", combo.version) } group "all" { targets = ["image"] }