Installing

There are many installation methods available for gomplate, depending on your platform and use-case.

macOS/Linux with homebrew

The simplest method for macOS and Linux is to use homebrew:

$ brew install gomplate
...

==> Installing gomplate
==> Pouring gomplate-3.8.0.x86_64_linux.bottle.tar.gz
🍺  /home/linuxbrew/.linuxbrew/Cellar/gomplate/3.8.0: 6 files, 7.8MB

macOS with MacPorts

On macOS, you can also install gomplate using MacPorts:

$ sudo port install gomplate

Windows with Chocolatey

The simplest method for installing gomplate on Windows is to use choco:

choco install gomplate

Alpine Linux

gomplate is available in Alpine’s community repository.

$ apk add --no-cache gomplate
...

Note: the Alpine version of gomplate may lag behind the latest release of gomplate.

use with Docker

A simple way to get started is with one of the hairyhenderson/gomplate Docker images.

$ docker run hairyhenderson/gomplate:stable --version
gomplate version 3.9.0

Of course, there are some drawbacks - any files to be used for [datasources][] must be mounted and any environment variables to be used must be passed through:

$ echo 'My voice is my {{.Env.THING}}. {{(datasource "vault").value}}' | docker run -i -e THING=passport -v /home/me/.vault-token:/root/.vault-token hairyhenderson/gomplate -d vault=vault:///secret/sneakers -f -
My voice is my passport. Verify me.

It can be awkward to always type docker run hairyhenderson/gomplate:stable, so this can be made simpler with a shell alias:

$ alias gomplate='docker run hairyhenderson/gomplate:stable'
$ gomplate --version
gomplate version 3.9.0

use inside a container

gomplate is often used inside Docker containers. When building images with Docker 17.05 or higher, you can use multi-stage builds to easily include the gomplate binary in your container images.

Use the COPY instruction’s --from flag to accomplish this:

...
COPY --from=hairyhenderson/gomplate:stable /gomplate /bin/gomplate

Now, gomplate will be available in the /bin directory inside the container image.

Note that when using gomplate with HTTPS-based datasources, you will likely need to install the ca-certificates package for your base distribution. Here’s an example when using the alpine base image:

FROM alpine

COPY --from=hairyhenderson/gomplate:stable /gomplate /bin/gomplate
RUN apk add --no-cache ca-certificates

manual install

  1. Get the latest gomplate for your platform from the releases page
  2. Store the downloaded binary somewhere in your path as gomplate (or gomplate.exe on Windows)
  3. Make sure it’s executable (on Linux/macOS)
  4. Test it out with gomplate --help!

In other words:

$ curl -o /usr/local/bin/gomplate -sSL https://github.com/hairyhenderson/gomplate/releases/download/<version>/gomplate_<os>-<arch>
$ chmod 755 /usr/local/bin/gomplate
$ gomplate --help
...

install with go install

If you’re a Go developer, sometimes it’s faster to just use go install to install gomplate:

$ go install github.com/hairyhenderson/gomplate/v4/cmd/gomplate@latest
$ gomplate --help
...

(note that this method produces a binary that isn’t versioned and may not necessarily work correctly)

install with npm

For some users, especially Node.js developers, using npm may be a natural fit. Even though gomplate is written in Go and not Node.js, it can still be installed with npm:

$ npm install -g gomplate
...

install with tea.xyz

For some users (including for DEVOPS on GitHub Actions), tea.xyz maybe be very comfortable, therefore, to install, just:

$ sh <(curl https://tea.xyz) +gomplate.ca sh
$ gomplate --version
...