In essence, Laravel Sail is more than just a command-line interface (CLI). It acts as a bridge, liberating you from the intricacies of Docker and letting you focus on the core PHP-related tasks. Its user-friendly nature and robust support for various services like Redis, MySQL, and Mailsearch make it an excellent companion for Laravel development.
Installation
The installation is through familiar tools but first a prerequisite:
Before diving into Laravel Sail, ensure that Docker is installed and running on your machine. If you are unfamiliar with Docker or need installation guidance, refer to the official Docker website.
To get started, navigate to your Laravel application and execute the following commands:
composer require laravel/sail --dev php artisan sail:install
This command sequence not only installs Laravel Sail but also configures the required
docker-compose.yml
file and sets essential environment variables.Docker Compose Configuration
The
docker-compose.yml
file defines the services and their configurations. Here's a snippet highlighting the structure:# ... (other configurations) services: laravel.test: # ... (service configuration details) mysql: # ... (mysql service configuration details) # ... (other configurations)
This file specifies the Laravel service, MySQL service, and other dependencies, along with their configurations and relationships.
starting Laravel sail
Before running Laravel Sail, ensure you are using the default Docker context by executing:
docker context use default
Then, initiate the build process with:
./vendor/bin/sail up
If you encounter issues with Docker not running, particularly on Linux (Ubuntu in this example), refer to the provided guide on Linux-post-installation
Alias for Convenience
To streamline the process of running
artisan
commands, consider creating an alias for Laravel Sail:alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
This alias simplifies the command to:
sail artisan <command>
Conclusion
With Laravel Sail, the journey of running projects in containers becomes a breeze. Although we've only touched the surface of Docker basics, you can delve deeper into the Docker documentation provided in the link. Thank you for joining in, and happy coding!
if you are looking for a laravel developer or for personal projects, reach me at karanijohn018[at]gmail[dot]com. Thanks