Open covex-nn opened 6 years ago
@covex-nn Thanks for the notification and sorry for my late response :)
I just had a quick look and I definitely need some more time to have a deeper look and try some things. My first tests worked nicely without any problems.
Are you planning to separate the repository provided by this plugin, so the plugin itself will not provide any (opiniated) environments? Are you planning to provide some mechanism to extend the list of provided configurators by additional plugins?
I will let you know when I found some more time to play with this plugin and I have more questions. :)
I planned to separate a plugin and a repository later. Right now it is more convenient to keep them together. These sequences in repository are for personal use, unlike Flex recipes. So, personal repositories will be used for sure.
And there was no plans about extending a list of configurators with other plugins. May be later, when there will be at least 3 plugin users or even more =))
UPD: I separated a repository from a plugin, see https://github.com/covex-nn/env-repository
Why was https://github.com/covex-nn/extra-flex/ abandoned? It was appealing, simple, focused on inline-flex, with few extra-dependencies and just worked.
Also note that in the meantime Symfony\Flex\Configurator->install()
prototype changed and extra-flex
would need an update.
UPD: I just found https://github.com/kwivix/flexinline/blob/master/src/ComposerPlugin.php for even less code.
Environment configurator is a Composer plugin, it was created to automate frequent routine operations. With console command, this plugin executes sequences of these operations, stored in special repositories.
To show how it works, i prepared a demo, at the end of it you will have fully functional application, running inside Docker containers, with SonataDoctrineORMAdminBundle and FOSUserBundle installed and with configured user management inside admin panel. Please, follow instructions:
Configure local DNS
Add two records to
C:\WINDOWS\System32\Drivers\etc\hosts
or/etc/hosts
file:docker.local 127.0.0.1
andmysql 127.0.0.1
. If you useDocker Toolbox
and Windows as a host, executedocker-machine env
, get IP-address fromDOCKER_HOST
variable and add that IP instead of127.0.0.1
Create a new project
Install plugin, using global installation is recommended:
After installation a new composer command
env:apply
will be available.Install SonataDoctrineORMBundle and FOSUserBundle with user management
Configure local
docker-compose
environmentIf you applied
docker-compose
beforeadmin
, replace host in.env
file forDATABASE_URL
from127.0.0.1
tomysql
manualy.Run Web-server
Default environment uses PHP built-in Web-server
But if you want to use Nginx as Web server or if you do not have PHP 7.2 installed on your host, execute the following instead:
Update database schema and create admin user
or
Even if you have chosen
nginx
as your web-server, you can run console commands from host, it is not necessary to run them inside container. But in this case, there will be 2var
directory: first on the host and the second inside container, and withphp bin/console cache:clear
you will clear cache on your host, not inside VMVisit http://docker.local/admin/
Also, there is a package covex-nn/docker-symfony, it was created via
composer env:apply docker-ci
command. It contains same all docker files from above and some procedures for deployment with GitLab CI/CD Pipeline.