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 } } } }