compress 포스트 프로세서

compress 포스트 프로세서

compress 포스트 프로세서는 VMware나 VirtualBox 같은 빌더가 만든 파일이 담긴 아티팩트를 받아 단일 압축 아카이브로 압축해 주는 포스트 프로세서예요. 여러 파일을 하나의 압축 파일로 묶고 싶을 때 사용합니다.

출처: Packer 공식 문서

본문

Artifact BuilderId: packer.post-processor.compress

Packer compress 포스트 프로세서는 VMware나 VirtualBox 같은 곳에서 만들어진 파일들이 담긴 아티팩트를 가져와 단일 아카이브로 압축합니다.

설정 (Configuration)

선택 항목 (Optional):

기본적으로 packer는 packer_{{.BuildName}}_{{.BuilderType}}라는 파일 이름으로 .tar.gz 형식의 아카이브를 만들 거예요. 이걸 바꾸고 싶다면 output 옵션을 지정하면 됩니다.

  • output (string) - 압축된 아카이브를 저장할 경로. 아카이브 형식은 파일 이름에서 유추돼요. 예를 들어 .tar.gz는 gzip된 tarball이고, .zip은 zip 파일이 됩니다. 확장자를 감지할 수 없으면 packer는 기본적으로 .tar.gz처럼 동작하지만 파일 이름을 바꾸지는 않아요. 이 필드는 템플릿 엔진으로 취급되므로, 여기서 사용자 변수와 템플릿 함수를 사용할 수 있어요. output 템플릿에는 다음과 같은 특수 변수들도 사용할 수 있습니다. 여러 빌더를 병렬로 실행한다면 각각에 대해 output이 고유한지 확인하세요. 예를 들어 packer_{{.BuildName}}.zip처럼요.
    • {{.BuildName}}
    • {{.BuilderType}}
  • format (string) - 아카이브 형식 자동 감지를 비활성화하고 제공된 문자열을 사용해요.
  • compression_level (number) - 지원하는 알고리즘에 대해 1부터 9까지의 압축 수준을 지정. 일반적으로 압축 수준이 높을수록 시간은 더 걸리지만 파일은 더 작아져요. 기본값은 6.
  • keep_input_artifact (boolean) - true면 소스 파일과 압축 파일을 모두 유지하고, false면 소스 파일을 버려요. 기본값은 false.

지원 형식 (Supported Formats)

지원되는 파일 확장자는 .zip, .tar, .gz, .tar.gz, .lz4, .tar.lz4예요. .gz와 .lz4는 압축할 파일이 여러 개면 실패한다는 점을 참고하세요.

Examples

아래는 포스트 프로세서 설정만 보여주는 최소한의 예시 몇 가지예요.

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