TerraformPilot

Terraform

Install Terraform on Alpine Linux

Install Terraform on Alpine Linux for Docker containers and lightweight environments. Binary install, apk package, and minimal Docker images.

LLuca Berton1 min read

Quick Answer

#
apk add --no-cache terraform --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community
terraform version

Method 1: Binary Download (Any Version)

#
apk add --no-cache curl unzip
TERRAFORM_VERSION="1.8.5"
curl -LO "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip"
unzip "terraform_${TERRAFORM_VERSION}_linux_amd64.zip"
mv terraform /usr/local/bin/
rm "terraform_${TERRAFORM_VERSION}_linux_amd64.zip"
terraform version

For ARM (Raspberry Pi, Graviton):

curl -LO "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_arm64.zip"

Method 2: Community Repository

#
# Alpine 3.19+
apk add --no-cache terraform --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community

Minimal Docker Image

#
FROM alpine:3.19
 
ARG TERRAFORM_VERSION=1.8.5
 
RUN apk add --no-cache curl unzip && \
    curl -LO "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" && \
    unzip "terraform_${TERRAFORM_VERSION}_linux_amd64.zip" -d /usr/local/bin/ && \
    rm "terraform_${TERRAFORM_VERSION}_linux_amd64.zip" && \
    apk del curl unzip && \
    terraform version
 
WORKDIR /workspace
ENTRYPOINT ["terraform"]
docker build -t terraform-alpine .
docker run --rm -v $(pwd):/workspace terraform-alpine version
# Image size: ~80MB (vs ~350MB for hashicorp/terraform)

CI/CD Image with Tools

#
FROM alpine:3.19
 
ARG TERRAFORM_VERSION=1.8.5
 
RUN apk add --no-cache \
    curl unzip bash jq git openssh-client \
    python3 py3-pip && \
    curl -LO "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" && \
    unzip "terraform_${TERRAFORM_VERSION}_linux_amd64.zip" -d /usr/local/bin/ && \
    rm "terraform_${TERRAFORM_VERSION}_linux_amd64.zip" && \
    pip3 install awscli --break-system-packages
 
WORKDIR /workspace
ENTRYPOINT ["/bin/bash"]

Why Alpine?

#
FeatureAlpineUbuntuhashicorp/terraform
Base image~7 MB~78 MB~350 MB
With Terraform~80 MB~150 MB~350 MB
Package managerapkaptapk
Shellash (busybox)bashash
Best forCI/CD, minimal containersDev environmentsQuick start

Troubleshooting

#
# "not found" error — Alpine uses musl, not glibc
# Terraform static binary works on both — this shouldn't happen
# If it does, install gcompat:
apk add --no-cache gcompat
#

Conclusion

#

Alpine Linux produces the smallest Terraform Docker images (~80 MB). Use the binary download method for version pinning in CI/CD, or the community repository for quick installs. Alpine is ideal for CI/CD runner images where image pull time matters.

#Terraform#Alpine Linux#Docker#Linux#Install

Share this article