Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cruxstack/terraform-docker-artifact-packager
Terraform Module to build extractable artifacts using docker without polluting host environment.
https://github.com/cruxstack/terraform-docker-artifact-packager
artifact artifact-tools artifacts build build-tool cloudposse docker hcl2 package packager sweetops terraform terraform-module utility
Last synced: 7 days ago
JSON representation
Terraform Module to build extractable artifacts using docker without polluting host environment.
- Host: GitHub
- URL: https://github.com/cruxstack/terraform-docker-artifact-packager
- Owner: cruxstack
- License: mit
- Created: 2023-07-08T14:00:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-05T19:04:16.000Z (12 months ago)
- Last Synced: 2025-01-19T01:41:11.728Z (10 days ago)
- Topics: artifact, artifact-tools, artifacts, build, build-tool, cloudposse, docker, hcl2, package, packager, sweetops, terraform, terraform-module, utility
- Language: HCL
- Homepage: https://registry.terraform.io/modules/cruxstack/artifact-packager/docker/latest
- Size: 50.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Terraform Module: Docker Artifact Packager
This Terraform module provides a reusable, customizable solution for building
Docker images and extracting artifacts from them. This utility module builds
artifacts with docker to prevent polluting host environment.## Features
- Builds Docker images using provided build context and arguments
- Creates a unique tag for each Docker image built
- Generates a zip archive of the specified directory
- Copies an artifact from the Docker container to a specified path
- Supports both Linux and Windows Docker containers## Usage
```hcl
module "artifact_packager" {
source = "cruxstack/artifact-packager/docker"
version = "x.x.x"docker_build_context = "${path.module}/examples/aws-lambda-fn/fixures/echo-app"
docker_build_target = "package"
artifact_src_path = "/tmp/package.zip"
}
```## Inputs
In addition to the variables documented below, this module includes several
other optional variables (e.g., `name`, `tags`, etc.) provided by the
`cloudposse/label/null` module. Please refer to the [`cloudposse/label` documentation](https://registry.terraform.io/modules/cloudposse/label/null/latest) for more details on these variables.| Name | Description | Type | Default | Required |
|--------------------------|-------------------------------------------------------------------------------------|:-------------:|:-------:|:--------:|
| `docker_build_context` | The context to use when building the Docker image. | `string` | n/a | yes |
| `docker_build_target` | The target to use when building the Docker image. | `string` | n/a | yes |
| `docker_build_args` | Additional arguments to pass to Docker during the build process. | `map(string)` | `{}` | no |
| `artifact_dst_directory` | The destination directory on the host machine to which the artifact will be copied. | `string` | "" | no |
| `artifact_src_path` | The path in the Docker container from which to copy the artifact. | `string` | n/a | yes |
| `artifact_src_type` | "The type of artifact to copy. Accepts 'zip' or 'directory'." | `string` | `zip` | no |
| `force_rebuild_id` | A unique identifier that, when changed, will force the Docker image to be rebuilt. | `string` | "" | no |
| `os_compatibility` | The operating system of Terrafrom environment. Accepts 'unix' or 'windows'. | `string` | `unix` | no |## Outputs
| Name | Description |
|-------------------------|--------------------------------------------|
| `artifact_package_path` | The local path where the artifact located. |## Contributing
We welcome contributions to this project. For information on setting up a
development environment and how to make a contribution, see [CONTRIBUTING](./CONTRIBUTING.md)
documentation.