Docker environment required to run Laravel (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.4 (Apache handler)
- MySQL 8
- Laravel 6 LTS
1.Clone this repository from GitHub.
2.Edit docker-compose-prod.yml and set necessary user/password for MySQL.
Note: Delete storage/mysql-data folder if it is exist.
3.Edit env.prod and set necessary user/password for MySQL.
4.Build, start and install the docker images from your terminal:
make build-prod
make start-prod
5.Make sure that you have installed migrations:
make migrate-no-test
6.Set key for application:
make key-generate
1.Clone this repository from GitHub.
Note: Delete storage/mysql-data folder if it is exist.
2.Build, start and install the docker images from your terminal:
make build-staging
make start-staging
3.Make sure that you have installed migrations:
make migrate-no-test
4.Set key for application:
make key-generate
1.Clone this repository from GitHub.
Note: Delete storage/mysql-data folder if it is exist.
2.Add domain to local 'hosts' file:
127.0.0.1 localhost
3.Configure /docker/dev/xdebug.ini
(optional):
- In case you need debug only requests with IDE KEY: PHPSTORM from frontend in your browser:
xdebug.start_with_request = no
Install locally in Firefox extension "Xdebug helper" and set in settings IDE KEY: PHPSTORM
- In case you need debug any request to an api (by default):
xdebug.start_with_request = yes
4.Build and start the image from your terminal:
make build
make start
make composer-install
make env-dev
5.Set key for application:
make key-generate
6.Make sure that you have installed migrations/seeds:
make migrate
make seed
7.In order to use this application, please open in your browser next url: http://localhost.
After application will start (make start
) and in order to get shell access inside laravel container you can run following command:
make ssh
Note 1: Please use next make commands in order to enter in other containers: make ssh-nginx
, make ssh-supervisord
, make ssh-mysql
.
Note 2: Please use exit
command in order to return from container's shell to local shell.
In case you edited Dockerfile or other environment configuration you'll need to build containers again using next commands:
make stop
make build
make start
Note 1: Please use next command if you need to build staging environment make build-staging
instead make build
.
Note 2: Please use next command if you need to build prod environment make build-prod
instead make build
.
Please use next make commands in order to start and stop environment:
make start
make stop
Note 1: For staging environment need to be used next make commands: make start-staging
, make stop-staging
.
Note 2: For prod environment need to be used next make commands: make start-prod
, make stop-prod
.
make build
make build-test
make build-staging
make build-prod
make start
make start-test
make start-staging
make start-prod
make stop
make stop-test
make stop-staging
make stop-prod
make restart
make restart-test
make restart-staging
make restart-prod
make env-dev
make env-test-ci
make ssh
make ssh-supervisord
make ssh-mysql
make composer-install-no-dev
make composer-install
make composer-update
make key-generate
make info
make logs
make logs-supervisord
make logs-mysql
make drop-migrate
make migrate-no-test
make migrate
make seed
make phpunit
make report-code-coverage
make phpcs
make ecs
make ecs-fix
make phpmetrics
make phpcpd
make phpmd
make phpstan
make phpinsights
etc....
Notes: Please see more commands in Makefile
- Laravel 6
- laravel-migrations-organiser
- phpunit
- laravel-ide-helper
- scriptsdev
- composer-bin-plugin
- ergebnis/composer-normalize
- security-advisories
- php-coveralls
- easy-coding-standard
- PhpMetrics
- phpcpd
- phpmd
- phpstan
- phpinsights
- 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(or another one in case you are not using CircleCI) and status is green.
- When PR is approved, it will be squashed & merged, into
develop
and later merged intorelease/{No}
for deployment.