---
layout: docs
page_title: Blocks - Configuration Language
sidebar_title: Blocks
description: |-
  The HCL language has a number of blocks that can be used to configure builds.
---

# Built-in Blocks

`@include 'from-1.5/beta-hcl2-note.mdx'`

The Packer - HCL2 language includes a number of built-in blocks that you can
use. A block is a container for configuration.

Blocks can be defined in multiple files and `packer build folder` will build
using solely the files from a directory named `folder`. 

Packer does not support user-defined blocks and so only the blocks built in to
the language are available for use. The navigation for this section includes a
list of all of the available built-in HCL2 blocks.

## Config example:

`@include 'from-1.5/variables/foo-block.mdx'`

* [Variable block documentation](/docs/from-1.5/blocks/variable).

`@include 'from-1.5/locals/example-block.mdx'`

* [Locals block documentation](/docs/from-1.5/blocks/locals).

`@include 'from-1.5/sources/example-block.mdx'`

* [source block documentation](/docs/from-1.5/blocks/source).

`@include 'from-1.5/builds/example-block.mdx'`

* [build block documentation](/docs/from-1.5/blocks/build).
