Converts and merges YAML files based on YAML rules
🚨THIS REPOSITORY IS DEPRECATED
This is a console command to convert and merges YAML files.
This project was developed as a helper-tool for our Docker development and build process and may be currently in a heavily biased state.
Note you can run this command directly with
docker, since it's part of Phundament. See below for details.
The preferred way to install this extension is through composer.
composer require --prefer-dist dmstr/yii2-yaml-converter-command "*"
to the require section of your
Register a converter command in console configuration
'controllerMap' => [ 'stack-converter' => 'dmstr\console\controllers\DockerStackConverterController' ],
Once the extension is installed, use it on the command line:
./yii yaml/convert-docker-compose \ --dockerComposeFile=@app/docker-compose.yml \ --templateDirectory=@app/build/stacks-tpl \ --outputDirectory=@app
./yii yaml/convert-docker-compose \ --dockerComposeFile=@root/docker-compose.yml \ --templateDirectory=@root/build/stacks-tpl \ --outputDirectory=@root
You can run the converter for Docker stacks directly with Docker, from the
phundament/app Docker image
docker run phundament/app ./yii help yaml/convert-docker-compose
After checking the options, we may mount i.e.
/mnt in the container and run the conversion process
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
The conversion process follows the following simple ruleset
dockerComposeFileas new base-file
templateReplacementsFileand replace values in every template
- merge template with base-file and write new file to
- 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: CLEANto remove the
imageattribute of a service.