Terraform: Quick Start

This post explains how to run “hashicorp/terraform docker” using docker-compose.

You will be able to create an instance on AWS.

pre-requisite

IAM user with programmatic access is needed.

1. Dockerfile

Create a directory to mount the local files (Reference: Terraform With Docker).

FROM hashicorp/terraform:0.12.29

RUN mkdir /workspace
WORKDIR /workspace

2. docker-compose.yml

Pass the IAM info as environment variables, and mount the current directory.

version: '3'
services:
  terraform:
    build: .
    environment:
      AWS_ACCESS_KEY_ID: YOUR_ACCESS_ID
      AWS_SECRET_ACCESS_KEY: YOUR_SECRET_KEY
      AWS_DEFAULT_REGION: us-east-1
    volumes:
      - .:/workspace

3. main.tf

resource "aws_instance" "example" {
  ami = "ami-08f3d892de259504d"
  instance_type = "t1.micro"
}

The AMI ID refers to Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-08f3d892de259504d (64-bit x86)

4. create & destroy instance

Probably, it is a good idea to setup an alias.

alias tf='docker-compose run terraform'
tf --version

Initialize terraform, confirm plan, then create the instance.

tf init
tf plan
tf apply

Delete the instance if you no longer need it.

tf destroy

Comments

Popular posts from this blog

Minikube Installation for M1 Mac

Selenide: Quick Start

PyCharm: Quick Start