ekandreas / docker-laravel
Docker environment for Laravel projects
Requires
- vlucas/phpdotenv: ~2.2
README
*** WORK IN PROGRESS ***
AEKAB uses this package to enable Docker dev environment for Laravel project development.
Requirements
Step by step, getting started
Step 1, the project root
Install Laravel or go to your Laravel project root
composer create-project laravel/laravel theproject
Step into the project folder
cd theproject
Step 2, requirements
Install this package with composer and require-dev
composer require ekandreas/docker-laravel:* --dev
Step 3, the deployfile (deploy.php)
Create a deploy file in the project root, a file called "deploy.php", eg:
<!-- deploy.php in the laravel project root --> <!-- Change "theproject.dev" to your local dev domain --> <?php include_once 'vendor/ekandreas/docker-laravel/recipe.php'; server('theproject.dev', 'default') ->env('container', 'laravel') ->stage('development');
Step 4, ensure .env
Note! It's really important that you have a valid .env -file in the project root because Docker-Laravel will take DB_DATABASE and settings as parameters when creating the mysql container. Set the DB_HOST to same as your Docker machine IP!
Partitial example of a .env -file:
...
DB_HOST=192.168.99.100
DB_DATABASE=lund
DB_USERNAME=root
DB_PASSWORD=root
...
Step 5, start containers
Run the script command in the terminal at your project root:
vendor/bin/dep docker:up development
If you have installed PHP deployer locally then run it without the path to "dep", just:
dep docker:up development
Step 6, ensure local DNS
Note! Change your DNS so that the URL points to the docker machine! Eg for Mac:
nano /etc/hosts
Then browse to theproject.dev and start develop your awesome web app.
Stopping the containers for another project
Stop the containers (php+mysql)
dep docker:stop development
Cleanup
Note! Your web containers will be removed. If you get the wrong laravel image then do:
dep docker:cleanup development
And the container will be killed and the image removed to provide a new next startup. Good when need to create new image for Laravel containers.
...