Docker Compose workflow that sets up your own network of containers for local Laravel development
apphp/laravel-docker is a Laravel package for docker compose workflow that sets up your own network of containers for local laravel development.
It currently has 0 GitHub stars and 8 downloads on Packagist (latest version 0.6.0).
Install it with composer require apphp/laravel-docker.
Discover more Laravel packages by apphp
or browse all Laravel packages to compare alternatives.
Last updated
A pretty simple Docker Compose workflow that sets up your own network of containers for local Laravel development.
To get started, make sure you have Docker installed on your system, and then clone this repository:
To start working with docker do following
Open a terminal and navigate to the directory you cloned this
or copy docker/ directory and docker-composer.yml to your current project and navigate to there.
Rename everywhere in files myapp name with the name you prefer for your application.
Run following command to spin up the containers for the web server:
docker-compose up --build -d
After building containers you may up them by following command:
docker-compose up -d
or down with
docker-compose down
After successful building your website will be accessible via:
http://localhost:8081
___________ ___________ ___________ ___________
| | | | | | | |
| NGINX | --→ | PHP-FPM | | PHP-CLI | | REDIS |
| | | | | | | |
----------- ----------- ----------- -----------
| | |
↓ ↓ ↓
____________ ______________________________ ______________
| Static | | | | |
| Content | | CODE |<--| Node & Npm |
| CSS,JS.. | | | | |
------------ ------------------------------ --------------
Make sure you created following keys in your .env file:
DB_DATABASE=your-db
DB_USERNAME=your-db-username
DB_PASSWORD=your-db-password
When you bring down the Docker network, your MySQL data will be removed after the containers are destroyed. This is a default behaviour of Docker containers. If you would like to have persistent data that remains after bringing containers down and back up, do the following:
./storage/docker/mysql folder in your Laravel project root.docker-compose.yml file, add the following lines:volumes:
- ./storage/docker/mysql:/var/lib/mysql
After successful building and running docker containers you may run migrations and seeders. To perform these operations, simply type in your terminal and execute following commands:
docker-compose run --rm php-cli php artisan migrate
docker-compose run --rm php-cli php artisan db:seed
To install/remove new package run following commands:
docker-compose run --rm php-cli composer require predis/predis
Other commands you would like to run:
docker-compose run --rm php-cli composer --version
docker-compose run --rm php-cli composer dump-autoload
docker-compose run --rm php-cli composer test ExampleTest
Example of commands you would like to run:
docker-compose run --rm php-cli php -v
docker-compose run --rm php-cli php artisan migrate
docker-compose run --rm php-cli php artisan db:seed
docker-compose run --rm php-cli php artisan optimize:clear
docker-compose run --rm php-cli php artisan schedule:run
docker-compose run --rm php-cli git branch
docker-compose run --rm php-cli git pull
composer require predis/predis
docker exec -it redis bash
ping
redis-cli
keys *
set name John
get name
exit
docker-compose run --rm node npm run dev
docker-compose run --rm node npm run watch
docker-compose run --rm node npm run hot