π Get your Laravel application running in under 2 minutes!
A complete, ready-to-use Docker setup for Laravel development with PHP 8.2, MySQL 8.0, and Nginx. No complex configuration needed!
- β PHP 8.2 with all Laravel extensions
- β MySQL 8.0 database (pre-configured)
- β Nginx web server
- β Laravel latest version
- β Hot reload for instant development
- β One-command setup
You only need:
- Docker Desktop installed and running
That's it! No need to install PHP, MySQL, or Nginx separately.
# Clone and start (or just start if already cloned)
docker compose up -d# Install Laravel dependencies
docker compose run --rm composer install# Run database migrations
docker compose run --rm artisan migrateπ Your app is ready! Open: http://localhost:8000
# Create new controller
docker compose run --rm artisan make:controller YourController
# Create new model
docker compose run --rm artisan make:model YourModel
# Run migrations
docker compose run --rm artisan migrate
# Seed database
docker compose run --rm artisan db:seed
# Clear cache
docker compose run --rm artisan cache:clear
# Run tests
docker compose run --rm artisan test
# Access Laravel Tinker
docker compose run --rm artisan tinker# Install new packages
docker compose run --rm composer require vendor/package-name
# Update all packages
docker compose run --rm composer update
# Install from composer.json
docker compose run --rm composer install# Start services
docker compose up -d
# Stop services
docker compose down
# Restart services
docker compose restart
# View logs
docker compose logs -f
# Check service status
docker compose psFrom your application: Already configured! Laravel will connect automatically.
Direct access:
# Connect to MySQL shell
docker compose exec mysql mysql -u laravel -p laravel
# Password: laravelExternal tools (phpMyAdmin, etc.):
- Host:
localhost - Port:
3306 - Database:
laravel - Username:
laravel - Password:
laravel
| Service | Container | Purpose | Port |
|---|---|---|---|
| app | laravel_app | PHP 8.2 Application | - |
| nginx | laravel_nginx | Web Server | 8000 |
| mysql | laravel_mysql | Database | 3306 |
| composer | laravel_composer | Package Manager | - |
| artisan | laravel_artisan | Laravel CLI | - |
# Access app container for debugging
docker compose exec app bash
# Access database container
docker compose exec mysql bashEdit .env file in your project root to customize:
- Database credentials
- Application settings
- Debug modes
Modify docker/php/php.ini for custom PHP settings.
# Stop the conflicting service or use different port
docker compose down
# Edit docker-compose.yml to change port from 8000 to 8080# Fix Laravel storage permissions
docker compose exec app chown -R www-data:www-data storage bootstrap/cache
docker compose exec app chmod -R 775 storage bootstrap/cache# Restart MySQL container
docker compose restart mysql
# Check if MySQL is running
docker compose exec mysql mysql -u laravel -p laravel -e "SELECT 1"# Complete reset (β οΈ This will delete your database!)
docker compose down -v
docker compose up -d
docker compose run --rm composer install
docker compose run --rm artisan migrateAfter setup, try these commands to explore:
# Create your first route
docker compose run --rm artisan make:controller WelcomeController
# Create a model with migration
docker compose run --rm artisan make:model Post -m
# View all available artisan commands
docker compose run --rm artisan list- π Application: http://localhost:8000
- ποΈ Database: localhost:3306
- π Logs:
docker compose logs -f
This project is licensed under the MIT License - see the LICENSE file for details.
Happy coding! π Your Laravel development environment is ready for action!
