Public Repository

Last pushed: 2 months ago
Short Description
v4: Alpine Linux v3.6 with a compiled Confd v0.13 binary installed at /usr/bin/.
Full Description

Overview

A handy basic and base image comprising of;

  • Alpine Linux v3.6. Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc v1.1.16 and BusyBox.
  • Confd v0.13. Confd is a lightweight configuration (file) management tool that can use data stored in etcd, consul, dynamodb, redis, vault, zookeeper and others as well as environment variables.

Use tag v3 for Alpine v3.4, musl v1.1.15 and Confd v0.12-alpha 3.
Use tag v1 for Alpine v3.3, musl v1.1.12 and Confd v0.12-alpha 3.

Usage

I'd expect you use this image as a simple, small base for others that run one (perhaps two) services that require dynamic runtime configuration of some sort. For instance, a HAProxy process that you'd configure at startup with Confd based on a number of environment variables or some other 'source of truth'.

Building an Image

In a Dockerfile you'd use this image as a base like so:

FROM itsthenetwork/alpine-confd:latest

You may want to copy across a confd configuration file (optional):

COPY confd/confd.toml /etc/confd/confd.toml

Then copy in your template and template resource files:

COPY confd/tmpl/* /etc/confd/templates/
COPY confd/toml/* /etc/confd/conf.d/

Runtime

You'd run confd within your container, perhaps in an entrypoint script or cron job, like so (using environment variable data in this case):

/usr/bin/confd -backend env -onetime

Go to the Confd Github page for more information on alternative parameters and options.

Acknowlegements

Kelsey Hightower for Confd and more besides.

Details on how the confd binary included in this image is built can be found here.

Docker Pull Command
Owner
itsthenetwork

Comments (1)
markmatthews
a year ago

Working a treat, thanks!