| # 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 <terraform@hashicorp.com>" |
| |
| # New standard version label. |
| LABEL version=$PRODUCT_VERSION |
| |
| # Historical Terraform-specific label preserved for backward compatibility. |
| LABEL "com.hashicorp.terraform.version"="${PRODUCT_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"] |