# This Dockerfile is not intended for general use, but is rather used to # produce our "light" release packages as part of our official release # pipeline. # # If you want to test this locally you'll need to set the three arguments # to values realistic for what the hashicorp/actions-docker-build GitHub # action would set, and ensure that there's a suitable "terraform" executable # in the dist/linux/${TARGETARCH} directory. FROM docker.mirror.hashicorp.services/alpine:latest AS default # This is intended to be run from the hashicorp/actions-docker-build GitHub # action, which sets these appropriately based on context. ARG PRODUCT_VERSION=UNSPECIFIED ARG PRODUCT_REVISION=UNSPECIFIED ARG BIN_NAME=terraform # This argument is set by the Docker toolchain itself, to the name # of the CPU architecture we're building an image for. # Our caller should've extracted the corresponding "terraform" executable # into dist/linux/${TARGETARCH} for us to use. ARG TARGETARCH LABEL maintainer="HashiCorp Terraform Team " # New standard version label. LABEL version=$VERSION # Historical Terraform-specific label preserved for backward compatibility. LABEL "com.hashicorp.terraform.version"="${VERSION}" RUN apk add --no-cache git openssh # The hashicorp/actions-docker-build GitHub Action extracts the appropriate # release package for our target architecture into the current working # directory before running "docker build", which we'll then copy into the # Docker image to make sure that we use an identical binary as all of the # other official release channels. COPY ["dist/linux/${TARGETARCH}/terraform", "/bin/terraform"] ENTRYPOINT ["/bin/terraform"]