#Flavour docker build { name = "docker" description = <" ] ssh_clear_authorized_keys = true } source "source.qemu.alpine" { output_directory = "${var.output_dir}/${var.version}/provisionned/${local.Docker.Name}" vm_name = "${local.output_name}-${var.version}-${local.Docker.Name}.img" iso_url = "${var.output_dir}/${var.version}/base/${local.output_name}-${var.version}.img" iso_checksum = "none" disk_size = 20480 disk_image = true boot_command = [ "" ] ssh_clear_authorized_keys = true } // Copy ssh Cadoles keys provisioner "file" { destination = "/tmp" source = "${local.locations.provisionning}/ssh/cadoles/" } provisioner "shell" { inline = [ "sh -cx 'cat /tmp/*.pub >> /root/.ssh/authorized_keys'", "sh -cx 'chmod -R 600 /root/.ssh/authorized_keys'" ] } // Install templater and bootstraper provisioner "shell" { script = "${local.dirs.provisionning}/templater-install.sh" } // Copy configuration values on the image provisioner "shell" { inline = [ "sh -cx 'mkdir -p ${local.builder_config.TemplateDir}'", "sh -cx 'mkdir -p ${local.builder_config.ValueDir}'" ] } // Copy configuration templates to the image provisioner "file" { destination = "${local.builder_config.TemplateDir}/" source = "${local.dirs.templates}/conf/${build.name}/" } // Copy configuration values on the image provisioner "file" { destination = "${local.builder_config.ValueDir}/${build.name}.json" content = "${jsonencode(local.Docker)}" } // Generate default configuration for docker provisioner "shell" { inline = [ "sh -cx '/usr/local/bin/btr -c ${local.builder_config.ValueDir}/ -t ${local.builder_config.TemplateDir}'" ] } // Install OpenNebula context tool provisioner "shell" { script = "${local.dirs.provisionning}/one-context.sh" } // Deploy the opennebula context script to manage configuration provisioner "file" { destination = "/etc/one-context.d/net-96-templater" source = "${local.dirs.provisionning}/conf/one-context/net-96-templater" } provisioner "shell" { inline = [ "sh -cx 'chmod +x /etc/one-context.d/net-96-templater'" ] } post-processor "shell-local" { inline = [ "/bin/sh ${local.dirs.post-processors}/sparsify.sh ${var.output_dir}/${var.version}/provisionned/${local.Docker.Name} ${var.image_version}", //"ruby ${local.dirs.tools}/one-templates -t image -m 640 -T ${local.dirs.templates}/one/image/common.tpl -n ${local.output_name}-${var.version}-${local.Docker.Name} -c '${local.Docker.Name} base image' --image-file ${var.output_dir}/${var.version}/provisionned/${local.Docker.Name}/${local.output_name}-${var.version}-${local.Docker.Name}.img", //"ruby ${local.dirs.tools}/one-templates -t vm -m 640 -T ${local.dirs.templates}/one/vm/common.xml -n ${local.output_name}-${var.version}-${local.Docker.Name} --image-name ${local.output_name}-${var.version}-${local.Docker.Name}", ] } }