variable "SERVER_VERSION" { default = "unknown" } variable "CLI_VERSION" { default = "unknown" } variable "IMAGE_REPO" { default = "temporaliotest" } variable "IMAGE_SHA_SHORT_TAG" { default = "" } variable "IMAGE_SHA_FULL_TAG" { default = "" } variable "IMAGE_BRANCH_TAG" { default = "" } variable "SAFE_IMAGE_BRANCH_TAG" { default = join("-", [for c in regexall("[a-z0-9]+", lower(IMAGE_BRANCH_TAG)) : c]) } variable "TEMPORAL_SHA" { default = "" } variable "TAG_LATEST" { default = false } # ALPINE_TAG is the single source of truth for the Alpine base image version. # NOTE: We use just the tag without a digest pin because digest-pinned manifest lists # cause platform resolution issues in multi-arch buildx builds (InvalidBaseImagePlatform warnings). variable "ALPINE_TAG" { default = "3.23.4" } target "admin-tools" { context = "docker" dockerfile = "targets/admin-tools.Dockerfile" args = { ALPINE_TAG = "${ALPINE_TAG}" } tags = compact([ "${IMAGE_REPO}/admin-tools:${IMAGE_SHA_SHORT_TAG}", "${IMAGE_REPO}/admin-tools:${IMAGE_SHA_FULL_TAG}", "${IMAGE_REPO}/admin-tools:${SAFE_IMAGE_BRANCH_TAG}", TAG_LATEST ? "${IMAGE_REPO}/admin-tools:latest" : "", ]) platforms = ["linux/amd64", "linux/arm64"] labels = { "org.opencontainers.image.title" = "admin-tools" "org.opencontainers.image.description" = "Temporal admin tools" "org.opencontainers.image.url" = "https://github.com/temporalio/temporal" "org.opencontainers.image.source" = "https://github.com/temporalio/temporal" "org.opencontainers.image.licenses" = "MIT" "org.opencontainers.image.revision" = "${TEMPORAL_SHA}" "org.opencontainers.image.created" = timestamp() "com.temporal.server.version" = "${SERVER_VERSION}" "com.temporal.cli.version" = "${CLI_VERSION}" } } target "server" { context = "docker" dockerfile = "targets/server.Dockerfile" args = { ALPINE_TAG = "${ALPINE_TAG}" } tags = compact([ "${IMAGE_REPO}/server:${IMAGE_SHA_SHORT_TAG}", "${IMAGE_REPO}/server:${IMAGE_SHA_FULL_TAG}", "${IMAGE_REPO}/server:${SAFE_IMAGE_BRANCH_TAG}", TAG_LATEST ? "${IMAGE_REPO}/server:latest" : "", ]) platforms = ["linux/amd64", "linux/arm64"] labels = { "org.opencontainers.image.title" = "server" "org.opencontainers.image.description" = "Temporal Server" "org.opencontainers.image.url" = "https://github.com/temporalio/temporal" "org.opencontainers.image.source" = "https://github.com/temporalio/temporal" "org.opencontainers.image.licenses" = "MIT" "org.opencontainers.image.version" = "${SERVER_VERSION}" "org.opencontainers.image.revision" = "${TEMPORAL_SHA}" "org.opencontainers.image.created" = timestamp() "com.temporal.server.version" = "${SERVER_VERSION}" } }