Files
dokku/contrib/images/digitalocean/packer.pkr.hcl
Jose Diaz-Gonzalez cdb188d7c8 fix: allow exit code 2 when waiting for cloud-init to complete
A change in cloud-init and/or the Ubuntu image provided by Digitalocean causes builds to fail due to cloud-init status exiting 2. The error is ignorable.

See digitalocean/marketplace-partners#186 for more details.
2024-10-19 00:55:41 -04:00

72 lines
1.6 KiB
HCL

packer {
required_plugins {
digitalocean = {
version = ">= 1.0.4"
source = "github.com/digitalocean/digitalocean"
}
}
}
variable "dokku_version" {
type = string
}
source "digitalocean" "ubuntu" {
image = "ubuntu-24-04-x64"
region = "nyc1"
size = "s-1vcpu-512mb-10gb"
ssh_username = "root"
snapshot_name = "dokku-${var.dokku_version}-snapshot-{{timestamp}}"
}
build {
name = "dokku"
sources = [
"source.digitalocean.ubuntu"
]
provisioner "shell" {
inline = [
"echo '--> Waiting until cloud-init is complete'",
"/usr/bin/cloud-init status --wait",
]
valid_exit_codes = [0, 2]
}
provisioner "file" {
source = "${path.root}/files/etc/"
destination = "/etc/"
}
provisioner "file" {
source = "${path.root}/files/var/"
destination = "/var/"
}
provisioner "shell" {
environment_vars = [
"DOKKU_VERSION=${var.dokku_version}",
"DEBIAN_FRONTEND=noninteractive",
"LC_ALL=C",
"LANG=en_US.UTF-8",
"LC_CTYPE=en_US.UTF-8",
]
scripts = [
"${path.root}/in_parts/011-docker",
"${path.root}/in_parts/011-ssh-message",
"${path.root}/in_parts/012-dokku-packages",
"${path.root}/in_parts/012-grub-opts",
"${path.root}/in_parts/014-docker-dns",
"${path.root}/in_parts/014-ufw-rules",
"${path.root}/in_parts/099-application_tag",
"${path.root}/in_parts/099-cleanup",
"${path.root}/in_parts/100-image-check",
]
}
post-processor "manifest" {
output = "digitalocean-manifest.json"
}
}