terraform/scripts/docker-release
Martin Atkins 2b3b62dab5 build: documentation for the new docker image release process
At the time of commit this file contains some things that are not yet true
due to the dockerhub configuration not having been updated. This therefore
remains aspirational until merged, after which the docherhub configuration
will be updated.
2017-07-19 13:02:39 -07:00
..
hooks build: configuration for building "release" docker images 2017-07-19 12:59:13 -07:00
Dockerfile-release build: configuration for building "release" docker images 2017-07-19 12:59:13 -07:00
README.md build: documentation for the new docker image release process 2017-07-19 13:02:39 -07:00
releases_public_key build: configuration for building "release" docker images 2017-07-19 12:59:13 -07:00

README.md

Terraform Docker Release Build

This directory contains configuration to drive the Dockerhub automated build for Terraform. This is different than the root Dockerfile (which produces the "full" image on Dockerhub) because it uses the release archives from releases.hashicorp.com. It is therefore not possible to use this configuration to build an image for a commit that hasn't been released.

How it works

Dockerhub runs the hooks/build script to trigger the build. That uses git describe to identify the tag corresponding to the current HEAD. If the current commit isn't tagged with a version number corresponding to a Terraform release already on releases.hashicorp.com, the build will fail.

What it produces

This configuration is used to produce the "latest", "light", and "beta" tags in Dockerhub, as well as specific version tags.

  • "latest" and "light" are synonyms, and are built from a branch in this repository called "stable".
  • "beta" is built from a branch called "beta".

All of these branches should be updated only to tagged commits, and only when it is desirable to create a new release image.

The full and master images image

This configuration does not produce the "full" image. That is instead produced by the Dockerfile in the repository root, driven by updates to the "stable" branch.

The "master" tag is updated for every commit to the master branch of the Terraform core repository. It is not recommended to use these images for any production use, but they can be useful for testing bleeding-edge features that are not yet included in a release.