covex-nn / env-configurator Goto Github PK
View Code? Open in Web Editor NEWEnvironment Configurator: Bootstrap new Symfony Flex applications
Home Page: https://github.com/covex-nn/docker-workflow-symfony
License: MIT License
Environment Configurator: Bootstrap new Symfony Flex applications
Home Page: https://github.com/covex-nn/docker-workflow-symfony
License: MIT License
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
and mysql 127.0.0.1
. If you use Docker Toolbox
and Windows as a host, execute docker-machine env
, get IP-address from DOCKER_HOST
variable and add that IP instead of 127.0.0.1
Create a new project
composer create-project symfony/skeleton .
Install plugin, using global installation is recommended:
composer global require covex-nn/environment
After installation a new composer command env:apply
will be available.
Install SonataDoctrineORMBundle and FOSUserBundle with user management
composer env:apply admin
Configure local docker-compose
environment
composer env:apply docker-compose
If you applied docker-compose
before admin
, replace host in .env
file for DATABASE_URL
from 127.0.0.1
to mysql
manualy.
Run Web-server
Default environment uses PHP built-in Web-server
docker-compose up -d
php -S 127.0.0.1:80 -t public
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:
cp docker-compose.override.yml.dist docker-compose.override.yml
docker-compose up -d
docker-compose exec php bin/console cache:clear
Update database schema and create admin user
php bin/console doctrine:schema:update --force
php bin/console fos:user:create admin [email protected]
php bin/console fos:user:promote admin ROLE_SUPER_ADMIN
or
docker-compose exec php bin/console doctrine:schema:update --force
docker-compose exec php bin/console fos:user:create admin [email protected]
docker-compose exec php bin/console fos:user:promote admin ROLE_SUPER_ADMIN
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 2 var
directory: first on the host and the second inside container, and with php bin/console cache:clear
you will clear cache on your host, not inside VM
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.
Add following to composer.json and add repository from extra.env-configurator
directory:
{
"extra": {
"env-configurator": "src/Resources/repository"
}
}
Add repositories from globaly installed packages, that have extra.env-configurator
configuration value in composer.json
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.