Packer - Build d'images (VMs, containers, ISOs)
Find a file
Ryan Johnson e45ff9b093 docs: add conditional expressions
This update adds a new section explaining conditional expressions in HCL, including syntax, usage examples, and best practices for clarity and maintainability. The documentation covers how to use conditionals for default values, dynamic argument omission, and recommends using locals for complex logic.

Ref: #12806

Signed-off-by: Ryan Johnson <ryan@tenthirtyam.org>
2025-07-23 11:57:16 -07:00
.github Update PR template for PCI (#13387) 2025-05-30 09:28:26 -04:00
.release release: ignore AWS SDK vulnerability for release 2025-01-06 15:12:19 -05:00
acctest packer: relax constraints on sources 2024-04-29 14:28:24 -04:00
builder packer: address unused lint errors 2024-07-18 10:51:17 -04:00
cmd chore: remove refs to deprecated io/ioutil 2023-09-26 11:13:31 -04:00
command formatting multiple hcl files (#13362) 2025-05-02 10:16:00 +05:30
contrib/zsh-completion Update fix command autocomplete to work for JSON template files only (#12366) 2023-04-14 13:00:24 -04:00
datasource Fix the failing acceptance test 2025-05-06 13:01:49 -07:00
examples Fixes typos in docs (#11322) 2021-10-11 10:19:49 +02:00
fix packer: address gosimple lint errors 2024-07-18 10:51:17 -04:00
hcl2template Fixed Test Cases 2025-06-24 21:36:50 +05:30
helper [COMPLIANCE] License changes (#12568) 2023-08-10 15:53:29 -07:00
internal hcp: use GetHCPPackerRegistryBlock in the hcl module 2025-03-11 14:49:59 -04:00
packer Fixed Test Cases 2025-06-24 21:36:50 +05:30
packer_test hcl2template: err on malformed local/data dep (#13340) 2025-06-17 09:22:09 +05:30
post-processor packer: address unused lint errors 2024-07-18 10:51:17 -04:00
provisioner Merge pull request #13422 from hashicorp/karthik/seperate_default_commands 2025-07-01 11:35:42 +05:30
scripts Adding darwin/386 as part of unsupported GOOS/GOARCH pair. 2025-02-20 11:43:28 -05:00
version prepare version 1.13.2-dev (#13408) 2025-06-06 15:43:28 +05:30
website docs: add conditional expressions 2025-07-23 11:57:16 -07:00
.copywrite.hcl update year in license files 2023-12-06 12:43:42 -08:00
.gitattributes HCL2: add templatefile function (#10776) 2021-03-23 12:02:05 +01:00
.gitignore Remove the vendor dir (#10916) 2021-04-21 10:52:55 +02:00
.go-version .go-version: bump to 1.23.2 2025-03-06 15:07:46 -05:00
.golangci.yml golangci.yml: add rule to not run errcheck on test 2024-07-18 10:51:17 -04:00
background_check.go [COMPLIANCE] License changes (#12568) 2023-08-10 15:53:29 -07:00
background_check_openbsd.go [COMPLIANCE] License changes (#12568) 2023-08-10 15:53:29 -07:00
CHANGELOG.md bump dev version (#13389) 2025-06-03 20:59:25 +05:30
checkpoint.go [COMPLIANCE] License changes (#12568) 2023-08-10 15:53:29 -07:00
CODEOWNERS add access to redirects and readme 2025-02-06 10:32:32 -08:00
commands.go commands: introduce plugin as alias to plugins 2024-03-11 15:06:13 -04:00
config.go packer: pick protobuf/gob for serialisation (#13025) 2025-01-21 16:44:03 -05:00
config_test.go config: rm mono-component support from config file (#12998) 2024-05-30 14:25:08 +02:00
Dockerfile Dockerfile: Add Product directory to /usr/share/doc directory 2024-04-23 09:28:35 -04:00
go Bump Go tooling version to 1.20.8 2023-10-03 10:32:42 -04:00
go.mod Bump go-git 2025-06-26 16:40:08 -07:00
go.sum Bump go-git 2025-06-26 16:40:08 -07:00
LICENSE update year in license files 2023-12-06 12:43:42 -08:00
log.go log: simplify the logOutput function 2024-07-18 10:51:17 -04:00
main.go packer: address errcheck lint errors 2024-07-18 10:51:17 -04:00
main_test.go [COMPLIANCE] License changes (#12568) 2023-08-10 15:53:29 -07:00
Makefile Makefile: bump golangci-lint to 1.60.1 2025-03-07 11:18:41 -05:00
panic.go [COMPLIANCE] License changes (#12568) 2023-08-10 15:53:29 -07:00
README.md Update README 2023-10-26 15:03:55 -04:00
tty.go [COMPLIANCE] License changes (#12568) 2023-08-10 15:53:29 -07:00
tty_solaris.go [COMPLIANCE] License changes (#12568) 2023-08-10 15:53:29 -07:00
Vagrantfile vagrantfile: add support for docker provider 2018-10-31 16:58:06 +03:00

Packer

License: BUSL-1.1 Build Status Discuss

HashiCorp Packer logo

Packer is a tool for building identical machine images for multiple platforms from a single source configuration.

Packer is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel. Packer supports various platforms through external plugin integrations, the full list of which can be found at https://developer.hashicorp.com/packer/integrations.

The images that Packer creates can easily be turned into Vagrant boxes.

Quick Start

Packer

There is a great introduction and getting started guide for building a Docker image on your local machine without using any paid cloud resources.

Alternatively, you can refer to getting started with AWS to learn how to build a machine image for an external cloud provider.

HCP Packer

HCP Packer registry stores Packer image metadata, enabling you to track your image lifecycle.

To get started with building an AWS machine image to HCP Packer for referencing in Terraform refer to the collection of HCP Packer Tutorials.

Documentation

Comprehensive documentation is viewable on the Packer website at https://developer.hashicorp.com/packer/docs.

Contributing to Packer

See CONTRIBUTING.md for best practices and instructions on setting up your development environment to work on Packer.

Unmaintained Plugins

As contributors' circumstances change, development on a community maintained plugin can slow. When this happens, HashiCorp may use GitHub's option to archive the plugins repository, to clearly signal the plugin's status to users.

What does unmaintained mean?

  1. The code repository and all commit history will still be available.
  2. Documentation will remain on the Packer website.
  3. Issues and pull requests are monitored as a best effort.
  4. No active development will be performed by HashiCorp.

If you are interested in maintaining an unmaintained or archived plugin, please reach out to us at packer@hashicorp.com.