Docker environment required to run Symfony (based on official php and mysql docker hub repositories).
- Docker version 18.06 or later
- Docker compose version 1.22 or later
- An editor or IDE
- MySQL Workbench
Note: OS recommendation - Linux Ubuntu based.
- Nginx 1.15
- PHP 7.3 fpm
- MySQL 8
- Symfony 4.2
- RabbitMQ 3
- 
Set another APP_SECRET for application in .env.prod file. Note 1: You can get unique secret key for example here. Note 2: Do not use .env.local.php on dev and test environment (delete it if exist). 
- 
Build and start the image from your terminal: docker-compose build make start make composer-install
- 
Add domain to local 'hosts' file: 127.0.0.1 localhost
- 
Make sure that you have installed migrations/fixtures: make migrate make fixtures
- 
Configure Xdebug: - In case you need debug only requests from frontend in Firefox:
- Edit /docker/dev/xdebug.ini:
 xdebug.remote_autostart = 0- Restart container
- Install locally in Firefox extension "Xdebug helper" and set in settings IDE KEY: PHPSTORM
- Have fun with debugging
 
- In case you need debug any request to an api:
- Edit /docker/dev/xdebug.ini:
 xdebug.remote_autostart = 1- Restart container
- Have fun with debugging
 
 
- In case you need debug only requests from frontend in Firefox:
```
make start
make start-test
make start-prod
make stop
make stop-test
make stop-prod
make restart
make restart-test
make restart-prod
make env-prod
make ssh
make ssh-supervisord
make composer-install-prod
make composer-install
make composer-update
make info
logs-supervisord
make drop-migrate
make migrate-prod
make migrate
make fixtures
make phpunit
etc....
```
Notes: Please see more commands in Makefile
- Symfony 4.2
- doctrine-migrations-bundle
- doctrine-fixtures-bundle
- command-scheduler-bundle
- phpunit
- phpunit-bridge
- phpunit-result-printer
- browser-kit
- css-selector
- security-checker
- messenger
- serializer-pack
- amqp
- For new feature development, fork developbranch into a new branch with one of the two patterns:- feature/{ticketNo}
 
- Commit often, and write descriptive commit messages, so its easier to follow steps taken when reviewing.
- Push this branch to the repo and create pull request into developto get feedback, with the formatfeature/{ticketNo}- Short descriptive title of Jira task".
- Iterate as needed.
- Make sure that "All checks have passed" on circleci and status is green.
- When PR is approved, it will be squashed & merged, into developand later merged intorelease/{No}for deployment.