packer-images/builds/docker.pkr.hcl
Ben Vincent ff19688dd2 feat: first commit
- add base image for docker and incus
- manage images for almalinux 8.10 and 9.5
- replace all existing docker build repos
2025-01-11 20:50:07 +11:00

70 lines
1.5 KiB
HCL

build {
name = local.build_name
sources = [
"source.docker.os",
]
# pre-file-copy scripts
provisioner "shell" {
inline = var.scripts_pre_file_copy
}
# Deploy files from the image directory -> root of machine
provisioner "file" {
source = var.deploy_files_from_image ? "./files/" : ""
destination = "/"
}
# Deploy files from the common directory -> root of machine
provisioner "file" {
source = var.deploy_files_from_common ? "../../../../files/${var.os_name}/${var.os_image}/" : ""
destination = "/"
}
# post-file-copy scripts
provisioner "shell" {
inline = var.scripts_post_file_copy
}
# pre-packages scripts
provisioner "shell" {
inline = var.scripts_pre_packages
}
# manage dnf/packages
provisioner "shell" {
inline = [
"dnf install -y ${join(" ", var.packages)}"
]
}
# post-packages scripts
provisioner "shell" {
inline = var.scripts_post_packages
}
# final scripts
provisioner "shell" {
inline = var.scripts_final
}
post-processors {
post-processor "docker-tag" {
repository = "${var.docker_server}/unkin/${var.os_name}${var.os_version_major}-${var.os_image}"
tags = ["latest", var.date]
}
dynamic "post-processor" {
for_each = local.is_master ? [1] : []
labels = ["docker-push"]
content {
login = true
login_server = var.docker_server
login_username = var.docker_username
login_password = var.docker_password
}
}
}
}