# Lightweight IaC runner: Terraform + Terragrunt + Scaleway CLI + glab FROM alpine:3.21 ARG TERRAFORM_VERSION=1.11.2 ARG TERRAGRUNT_VERSION=0.72.6 ARG SCW_CLI_VERSION=2.52.0 ARG GLAB_VERSION=1.55.0 # Install base dependencies RUN apk add --no-cache \ bash \ curl \ git \ jq \ openssh-client \ unzip \ aws-cli # Install Terraform (OpenTofu-compatible) RUN curl -fsSL "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" \ -o /tmp/terraform.zip && \ unzip /tmp/terraform.zip -d /usr/local/bin/ && \ rm /tmp/terraform.zip && \ terraform version # Install Terragrunt RUN curl -fsSL "https://github.com/gruntwork-io/terragrunt/releases/download/v${TERRAGRUNT_VERSION}/terragrunt_linux_amd64" \ -o /usr/local/bin/terragrunt && \ chmod +x /usr/local/bin/terragrunt && \ terragrunt --version # Install Scaleway CLI RUN curl -fsSL "https://github.com/scaleway/scaleway-cli/releases/download/v${SCW_CLI_VERSION}/scaleway-cli_${SCW_CLI_VERSION}_linux_amd64" \ -o /usr/local/bin/scw && \ chmod +x /usr/local/bin/scw && \ scw version # Install kubectl RUN curl -fsSL "https://dl.k8s.io/release/v1.31.4/bin/linux/amd64/kubectl" \ -o /usr/local/bin/kubectl && \ chmod +x /usr/local/bin/kubectl && \ kubectl version --client # Install glab (GitLab CLI) RUN curl -fsSL "https://gitlab.com/gitlab-org/cli/-/releases/v${GLAB_VERSION}/downloads/glab_${GLAB_VERSION}_linux_amd64.tar.gz" \ -o /tmp/glab.tar.gz && \ tar -xzf /tmp/glab.tar.gz -C /tmp/ && \ mv /tmp/bin/glab /usr/local/bin/glab && \ rm -rf /tmp/glab.tar.gz /tmp/bin && \ glab version WORKDIR /app