concocter has just reached an official
v1.0 release.
concocter is my own take on the init process in containers. It offers features
already found in other solutions such as supervisord
or docker-gen with enough twists for
justifying the effort of writing yet another tool in a similar vein.
Rationale
The rationale of concocter is to acquire variables from a number of remote of
local sources, to dynamically generate (configuration) files with the content of
these variables and to launch one or several processes once the files have been
generated. concocter can be placed in the background to continuously perform
these tasks, thus being able to regenerate the file as soon as a variable has
changed. In that case, concocter will restart the process, or request it to
reload its configuration using regular signals.
concocter has support for a range of sources for these variables. This
includes information about other containers running on the same Docker host, but
also the content of files (good for integration with Docker secrets), or the
content of a external HTTP(S) resources. The latter faciliates the use of, for
example, an internal key-value store with an RESTish interface for the storage
and access of cluster or project wide configuration variables. Using concocter
together with a capable reverse-proxy server such as
nginx or caddy provides
ways to automatically proxy containers carrying “instructions” as Docker labels
or environment variables.
Discussion and Community
The github project provides support for issue tracking and enhancement proposals.