Wednesday, September 21, 2016

concept of docker-compose-cauldron tool

The docker-compose.yml  format is very stiff (and Dockerfile as well ) :
  • environment variables (.env) don't allow to have default values, lists etc 
  • extend is very limited - multi-value sets are merged, links don't inherited etc
  • Dockerfile can have conditions for RUN, but not for other commands
  • there is no repository for compose.yml files and collections 
as the end every project ends with very specialized config which hard to support (updates, new features, fixes)

So there will be great to have tool which generates all needed files with use of some templating engine (if/for/while support inside docker-compose.yml, Dockerfile and other files as well)

use cases:

1. docker-compose-cauldron init {git url or name at repository}
- downloads source of template (into local subdir or somewhere under /home/.cache/
- creates docker-couldron.yml.example and docker-couldron.yml (project wide settings, i.e. will be stored in git) and .env.example (sample config for local environment (i.e. development/dev settings etc), stored in git but copied/edited to .env for local environment )

2. docker-compose-cauldron build
Builds docker-compose.yml and related "build" files for local environment (does not stored in git) based on settings from docker-couldron.yml and template

3. docker-compose-cauldron update
Updates source of template, as well docker-couldron.yml.example and .env.example , user should manually update docker-couldron.yml and .env files



No comments:

Post a Comment