This project sets up a Laravel development environment using Docker Compose, including the following services:
- Nginx (Web Server)
- PHP-FPM (PHP processing)
- MySQL (Database)
- Composer (PHP dependency management)
- Artisan (Laravel CLI commands)
- Node.js (NPM) (Frontend processing)
/
|-- docker-compose.yml
|-- dockerfiles/
| |-- php.dockerfile
| |-- composer.dockerfile
| |-- nginx.dockerfile
|-- nginx/
| |-- nginx.conf
|-- src/ # Laravel source code directory (ignored in .gitignore)
|-- env/mysql.env
First, install Docker and Docker Compose on your system.
git clone https://github.com/HowardPeter/laravel-server-setup.gitSince the src/ directory is ignored in .gitignore, you first need to create a src/ folder in the root folder level.
After that, create a fresh Laravel installation after cloning the repository.
docker-compose run --rm composer create-project --prefer-dist laravel/laravel:8.0 .Edit the default Laravel .env file in ./src/.env to match the MySQL configuration:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secretBuild and start server:
docker-compose up --build -d serverOnce completed, visit http://localhost:8000 to check the application.
Create the database and run migrations using Artisan:
docker-compose run --rm artisan migrate --seeddocker-compose logs -f server # View Nginx logs
docker-compose logs -f php # View PHP logsdocker-compose restartdocker-compose run --rm artisan tinkerdocker-compose run --rm composer require laravel/uidocker-compose run --rm npm install