YAML Converter Extension for Yii 2.0 Framework
:rotating_light: THIS REPOSITORY IS DEPRECATED, (*1)
TL;dr
This is a console command to convert and merges YAML files., (*2)
This project was developed as a helper-tool for our Docker development and build process and may be currently in a
heavily biased state., (*3)
  
  Note you can run this command directly with docker, since it's part of Phundament. See below for details., (*4)
Installation
The preferred way to install this extension is through composer., (*5)
Either run, (*6)
composer require --prefer-dist dmstr/yii2-yaml-converter-command "*"
to the require section of your composer.json file., (*7)
Register a converter command in console configuration, (*8)
'controllerMap' => [
    'stack-converter' => 'dmstr\console\controllers\DockerStackConverterController'
],
Usage
Within a Yii 2.0 application
Once the extension is installed, use it on the command line:, (*9)
./yii yaml/convert-docker-compose \
    --dockerComposeFile=@app/docker-compose.yml \
    --templateDirectory=@app/build/stacks-tpl \
    --outputDirectory=@app
Alternative alias, (*10)
./yii yaml/convert-docker-compose \
    --dockerComposeFile=@root/docker-compose.yml \
    --templateDirectory=@root/build/stacks-tpl \
    --outputDirectory=@root
Via Docker image
You can run the converter for Docker stacks directly with Docker, from the phundament/app Docker image, (*11)
docker run phundament/app ./yii help yaml/convert-docker-compose
After checking the options, we may mount i.e. tests to /mnt in the container and run the conversion process, (*12)
docker run -v `pwd`/tests:/mnt phundament/app ./yii yaml/convert-docker-compose \
    --dockerComposeFile=/mnt/base.yml \
    --templateDirectory=/mnt/stacks-tpl \
    --templateReplacementsFile=/mnt/eny.yml \
    --outputDirectory=/mnt/stacks-gen
  
  Hint! You can check the installed version with docker run phundament/app composer show -i dmstr/yii2-yaml-converter-command, (*13)
How it works?
docker-compose converter
The conversion process follows the following simple ruleset, (*14)
- read 
dockerComposeFile as new base-file
 
- find 
*.tpl.yml files in templateDirectory
 
- read 
templateReplacementsFile and replace values in every template 
- apply 
.variable rules (like CLEAN) 
- merge template with base-file and write new file to 
outputDirectory
 
- if there's a subfolder with the same name as the template, recurse into that folder and repeat the process with the new file, just created in the last step 
 
  
  You can use .image: CLEAN to remove the image attribute of a service., (*15)