mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-31 11:17:25 -06:00
6704f8c795
For the moment this is just an experimental additional sidecar package build process, separate from the one we really use for releases, so that we can get some experience building in the GitHub Actions environment before hopefully eventually switching to using the artifacts from this process as the packages we'll release through the official release channels. It will react to any push to one of our release branches or to a release tag by building official-release-like .zip, .deb, and .rpm packages, along with Docker images, based on the content of the corresponding commit. For the moment this doesn't actually produce _shippable_ packages because in particular it doesn't know how to update our version/version.go file to hard-code the correct version number. Once Go 1.18 is release and we've upgraded to it we'll switch to using debug.ReadBuildInfo to determine our version number at runtime and so no longer need to directly update a source file for each release, but that functionality isn't yet available in our current Go 1.17 release.
42 lines
1.7 KiB
Plaintext
42 lines
1.7 KiB
Plaintext
# 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=$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"]
|