nstart-svace/docker-bake.hcl
2026-03-24 00:13:31 +03:00

65 lines
1.6 KiB
HCL

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 <Sychev.NA@nstart.space>",
"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"]
}