This package aims to solve the problem of variable substitution in docker-compose files by parsing them as Jinja2 template.
It was inspired by the discussion here
It supports variable declaration in a separate YAML file as well as access to environment variables.
pip install meta-compose
Create a file
meta-compose.ymlthat is a Jinja2 template for a docker compose file.
[Optional] Create a file
meta-compose-data.ymlthat contains the variables used in the template that are not environment variables.
meta-composeand it will create a docker-compose.yml in the current directory
usage: meta-compose [-h] [-d DATAFILE] [-t TEMPLATE] [-o OUTPUTFILE] optional arguments: -h, --help show this help message and exit -d DATAFILE, --datafile DATAFILE Use to specify data files in addition to meta-compose- data.yml. They must be JSON or YAML files. -t TEMPLATE, --template TEMPLATE Use to specify the template file to use. Defaults to ./meta-compose.yml -o OUTPUTFILE, --outputfile OUTPUTFILE Use to specify the output file to create. Defaults to ./docker-compose.yml
Syntax of meta-compose.yml
Everything in basic Jinja2 is allowed.
To access environment variables use
VARIABLE_NAMEis the name of your environment variable and
defaultis the default value you want it to be if the environment variable is not set.