packer-cn/website/source/docs/post-processors/compress.html.md

2.4 KiB

description layout page_title sidebar_current
The Packer compress post-processor takes an artifact with files (such as from VMware or VirtualBox) and compresses the artifact into a single archive. docs Compress - Post-Processors docs-post-processors-compress

Compress Post-Processor

Type: compress

The Packer compress post-processor takes an artifact with files (such as from VMware or VirtualBox) and compresses the artifact into a single archive.

Configuration

Optional:

By default, packer will build archives in .tar.gz format with the following filename: packer_{{.BuildName}}_{{.BuilderType}}. If you want to change this you will need to specify the output option.

  • output (string) - The path to save the compressed archive. The archive format is inferred from the filename. E.g. .tar.gz will be a gzipped tarball. .zip will be a zip file. If the extension can't be detected packer defaults to .tar.gz behavior but will not change the filename.

    This is treated as a template engine. Therefore, you may use user variables and template functions in this field. The following special variables are also available to use in the output template:

    • {{.BuildName}}
    • {{.BuilderType}}

    If you are executing multiple builders in parallel you should make sure output is unique for each one. For example packer_{{.BuildName}}.zip.

  • format (string) - Disable archive format autodetection and use provided string.

  • compression_level (number) - Specify the compression level, for algorithms that support it, from 1 through 9 inclusive. Typically higher compression levels take longer but produce smaller files. Defaults to 6

  • keep_input_artifact (boolean) - if true, keep both the source files and the compressed file; if false, discard the source files. Defaults to false

Supported Formats

Supported file extensions include .zip, .tar, .gz, .tar.gz, .lz4 and .tar.lz4. Note that .gz and .lz4 will fail if you have multiple files to compress.

Examples

Some minimal examples are shown below, showing only the post-processor configuration:

{
  "type": "compress",
  "output": "archive.tar.lz4"
}
{
  "type": "compress",
  "output": "{{.BuildName}}_bundle.zip"
}
{
  "type": "compress",
  "output": "log_{{.BuildName}}.gz",
  "compression_level": 9
}