Published on

Exploring Laravel Sail

Authors

In this article I look into Laravel Sail, a development environment for Laravel applications. Laravel Sail is a lightweight command-line interface that simplifies the process of running Laravel applications in Docker containers in development mode.


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:

    bash
    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:

    yaml
    # ... (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:

    bash
    docker context use default

    Then, initiate the build process with:

    bash
    ./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:

    bash
    alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'

This alias simplifies the command to:

bash
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!