Terraform docker image with additional tooling for development and CI/CD purposes
10K+
Welcome to my Terraform Docker repo. This is a Terraform docker image with additional tooling for development and CI/CD purposes. The image contains various popular utilities often used in Terraform development. Utility versions are pinned in the Dockerfile and kept current through dependency-update PRs; the image is rebuilt and published to Docker Hub weekly (Mondays) to pick up base-image security patches.
The following utilities are included in this image:
# Pull and run the latest version
docker pull hansohn/terraform:latest
docker run -it --rm hansohn/terraform:latest terraform version
# Run with your Terraform code mounted
docker run -it --rm -v $(pwd):/workspace -w /workspace hansohn/terraform:latest terraform plan
Docker images are tagged based on the pinned version of Terraform they include. A single Terraform version is published at a time (the version pinned in the Dockerfile), and it receives the full set of tags below:
# tag formats (for a pinned Terraform version of e.g. 1.15.7)
hansohn/terraform:latest the currently published release
hansohn/terraform:1 the 1.x.x line
hansohn/terraform:1.15 the 1.15.x line
hansohn/terraform:1.15.7 the exact version
For reproducibility, pin by digest (hansohn/terraform@sha256:...); every image
ships provenance attestations and an SBOM bound to that digest.
This image supports multiple platforms:
linux/amd64 (x86_64)linux/arm64 (ARM64/Apple Silicon)Docker will automatically pull the correct architecture for your system.
Published images can be run using the following syntax:
# run latest published version
docker run -it --rm hansohn/terraform:latest /bin/bash
Local images can be built and run using the following syntax:
# build and run local image
make
Additionally, a Makefile has been included in this repo to assist with common development-related functions. I've included the following make targets for convenience:
Available targets:
clean Clean everything
dev Initialize development environment
docker/build Docker build image
docker/check Check if Docker daemon is running
docker/clean Docker clean build images
docker/lint Lint Dockerfile
docker/push Docker push image
docker/run Docker run image
help Help screen
help/all Display help for all targets
help/short This help short screen
docker run -it --rm -v $(pwd):/workspace -w /workspace \
hansohn/terraform:latest terraform init
docker run -it --rm -v $(pwd):/workspace -w /workspace \
hansohn/terraform:latest terragrunt plan
docker run -it --rm -v $(pwd):/docs -w /docs \
hansohn/terraform:latest terraform-docs markdown . > README.md
docker run -it --rm -v $(pwd):/src -w /src \
hansohn/terraform:latest trivy config .
docker run -it --rm -v $(pwd):/src -w /src \
hansohn/terraform:latest tflint
Utility versions are pinned in the Dockerfile and kept current through automated dependency-update PRs. For a local build you can override any of them on the command line to target a specific version:
# build against a specific Terraform version
TERRAFORM_VERSION=1.2.3 make docker/build
Note: Builds require BuildKit (the default in modern Docker). The Dockerfile uses BuildKit's automatic
TARGETARCH/BUILDARCHargs, soDOCKER_BUILDKIT=0is not supported.
Images are automatically:
main (multi-platform, without publishing)main so merged dependency updates and base-image security patches reach Docker HubPushes to main are built for verification but not published. Merged
dependency updates ship on the next weekly refresh, or immediately if you cut
a release tag.
This image is one of a family of infrastructure-tooling images built from
the same Makefile, workflow and Renovate pattern. terraform-docker and
cloudformation-docker each build directly from Debian; the four
cloud-specific Terraform images layer on top of hansohn/terraform.
Contributions are welcome! Please see our Contributing Guide for details.
This project is licensed under the terms specified in LICENSE.
Content type
Image
Digest
sha256:d585729fa…
Size
204.5 MB
Last updated
4 days ago
docker pull hansohn/terraform