Skip to content

zenika-open-source/terraform-aws-cli

Repository files navigation

lint-dockerfile build-test push-latest release

dockerhub-description-update License Docker Pulls

Terraform and AWS CLI Docker image

πŸ“¦ Supported tags and respective Dockerfile links

Available image tags can be found on the Docker Hub registry: zenika/terraform-aws-cli

Supported versions are listed in the supported_versions.json file.

The following image tag strategy is applied:

  • zenika/terraform-aws-cli:latest - build from master
  • zenika/terraform-aws-cli:release-S.T_terraform-UU.VV.WW_awscli-XX.YY.ZZ - build from releases
    • release-S.T is the release tag
    • terraform-UU.VV.WWW is the Terraform version included in the image
    • awscli-XX.YY.ZZ is the AWS CLI version included in the image

Please report to the releases page for the changelogs.

Any other tags are not supported even if available.

πŸ’‘ Motivation

The goal is to create a minimalist and lightweight image with these tools in order to reduce network and storage impact.

This image gives you the flexibility to be used for development or as a base image as you see fits.

πŸ”§ What's inside ?

Tools included:

  • Terraform CLI
  • AWS CLI
  • Git for Terraform remote module usage
  • jq to process JSON returned by AWS
  • OpenSSH Client to handle Terraform module clone over SSH
  • This image uses a non-root user with a UID and GID of 1001 to conform with docker security best practices.

πŸš€ Usage

🐚 Launch the CLI

Set your AWS credentials (optional) and use the CLI as you would on any other platform, for instance using the latest image:

echo AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY
echo AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY
echo AWS_DEFAULT_REGION=YOUR_DEFAULT_REGION

docker container run -it --rm -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}" -v ${PWD}:/workspace zenika/terraform-aws-cli:latest

The --rm flag will completely destroy the container and its data on exit.

βš™οΈ Build the image

The image can be built locally directly from the Dockerfiles, using the build script.

It will :

# launch build script
./dev.sh

Optionally, it is possible to choose the tools desired versions :

# Set tools desired versions
AWS_CLI_VERSION=2.12.6
TERRAFORM_VERSION=1.5.2

# launch the build script with parameters
./dev.sh $AWS_CLI_VERSION $TERRAFORM_VERSION

πŸ™ Contributions

Do not hesitate to contribute by filling an issue or a PR !

πŸ“š Documentations

🚩 Similar repositories

πŸ“– License

This project is under the Apache License 2.0

with love by zenika