systemsdk/docker-nginx-php-laravel
PHP Laravel environment
1.7K
Docker environment required to run Laravel (based on official php and mysql docker hub repositories).
Note: OS recommendation - Linux Ubuntu based.
For installing Docker Engine with docker compose please follow steps mentioned on page Docker Engine.
Note 1: Please run next cmd after above step if you are using Linux OS: sudo usermod -aG docker $USER
Note 2: If you are using Docker Desktop for MacOS 12.2 or later - please enable virtiofs for performance (enabled by default since Docker Desktop v4.22).
1.You can clone this repository from GitHub or install via composer.
Note: Delete storage/mysql-data
folder if it is exists.
If you have installed composer and want to install environment via composer you can use next cmd command:
composer create-project systemsdk/docker-nginx-php-laravel example-app
2.Add domain to local hosts
file:
127.0.0.1 localhost
3.Configure /docker/dev/xdebug-main.ini
(Linux/Windows) or /docker/dev/xdebug-osx.ini
(MacOS) (optional):
xdebug.start_with_request = no
Install locally in Firefox extension "Xdebug helper" and set in settings IDE KEY: PHPSTORM
xdebug.start_with_request = yes
4.Build, start and install the docker images from your terminal:
make build
make start
make composer-install
make env-dev
Note 1: If you want to change default docker configurations (web_port, etc...) - open .env
file, edit necessary environment variable value and stop, rebuild, start docker containers.
Note 2: If you are changing .env
file and such env params like MYSQL_VERSION
, MYSQL_ROOT_PASSWORD
, don't forget to stop docker containers and delete storage/mysql-data
folder before rebuild docker images.
5.Make sure that you have installed migrations/seeds:
make migrate
make seed
6.Set key for application:
make key-generate
7.In order to use this application, please open in your browser next urls:
1.You can clone this repository from GitHub or install via composer.
Note: Delete storage/mysql-data
and vendor
folder if it is exists.
If you have installed composer and want to install environment via composer you can use next cmd command:
composer create-project systemsdk/docker-nginx-php-laravel example-app
Note: If you want to change default docker configurations (web_port, etc...) - create uncommitted .env
file, copy data from .env.staging
, edit necessary environment variable value.
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.You can clone this repository from GitHub or install via composer.
Note: Delete storage/mysql-data
and vendor
folder if it is exists.
If you have installed composer and want to install environment via composer you can use next cmd command:
composer create-project systemsdk/docker-nginx-php-laravel example-app
2.Edit compose-prod.yaml
and set necessary user/password for MySQL.
3.Edit env.prod
and set necessary user/password for MySQL.
Note: If you want to change default docker configurations (web_port, etc...) - create uncommitted .env
file, copy data from .env.prod
, edit necessary environment variable value.
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
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 down
make build
make start
Note: Please use environment-specific commands if you need to build test/staging/prod environment, more details can be found using help make help
.
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
.
Please use next make commands in order to stop and remove environment containers, networks:
make down
Note: Please use environment-specific commands if you need to stop and remove test/staging/prod environment, more details can be found using help make help
.
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 down
make down-test
make down-staging
make down-prod
make restart
make restart-test
make restart-staging
make restart-prod
make env-dev
make env-test-ci
make ssh
make ssh-root
make fish
make ssh-nginx
make ssh-supervisord
make ssh-mysql
make composer-install-no-dev
make composer-install
make composer-update
make composer-audit
make key-generate
make info
make help
make logs
make logs-nginx
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
develop
branch into a new branch with one of the two patterns:
feature/{ticketNo}
develop
to get feedback, with the format feature/{ticketNo}
- "Short descriptive title of Jira task".develop
and later merged into release/{No}
for deployment.Note: You can find git flow detail example here.
docker pull systemsdk/docker-nginx-php-laravel