»The build block

Note: This page is about HCL2 Packer templates. HCL2 templates were first introduced as a beta feature into Packer version 1.5. As of v1.7, HCL2 support is no longer in beta, and is the preferred way to write Packer configuration. For the old-style stable configuration language see template docs. As of v1.6.2, you can convert your legacy JSON template into an HCL2 config file using the hcl2_upgrade command.

The build block defines what builders are started, how to provision them and if necessary what to do with their artifacts using post-process.

To use builders in a build block you can either:

  • Set the sources array of string with references to pre-defined sources.

  • Define build-level source blocks. This also allows you to set specific fields.

Define top-level source blocks to configure your builders. The list of available builders can be found in the builders section.

»Naming your builds

The optional name field of the build block can be used to set the name of a build. Named builds will prefix the log lines in a packer build with the name of the build block. For example:

Will output:

»Running only specific builds

The -only/-except flags will match a source's type.name and run 'only' matching builders (source) or all referenced builders 'except' the matching ones, for example with the same config file:

Here 'a.null.first-example' was skipped.

Note: It is not yet possible to match a named build block to do this, but this is soon going to be possible. So here "a.*" will match nothing.

»Related

  • A list of community builders is available.

  • Create your own custom builder !