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.
- Apache 2.4
- PHP 7.3 (Apache handler)
- MySQL 8
- Symfony 4.3
- 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
make logs-supervisord
make drop-migrate
make migrate-prod
make migrate
make fixtures
make phpunit
etc....
```
Notes: Please see more commands in Makefile
- Symfony 4.3
- apache-pack
- 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
develop
branch 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
develop
to 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
develop
and later merged intorelease/{No}
for deployment.