Laravel Q & A


How to use Laravel Sail for local development?

Using Laravel Sail for local development is like having a portable development environment that travels with your Laravel project—it provides a simple and efficient way to set up and manage your development environment using Docker. Here’s a user-friendly guide on how to use Laravel Sail for local development:


Understanding Laravel Sail: Laravel Sail is a Docker-based development environment for Laravel applications. It allows developers to create and manage a consistent development environment across different platforms and operating systems using Docker containers.


Setting Up Laravel Sail: To use Laravel Sail for local development, first ensure that Docker is installed on your system. Then, navigate to your Laravel project directory and run the ./vendor/bin/sail install command. This command initializes Sail within your project and sets up the necessary Docker containers and configuration files.


Starting the Development Environment: Once Sail is installed, you can start the development environment by running the ./vendor/bin/sail up command. This command launches the Docker containers defined in your project’s docker-compose.yml file and starts the Laravel application within the Docker environment.


Accessing Services: Laravel Sail includes preconfigured Docker containers for services such as MySQL, PostgreSQL, Redis, and Mailhog. These services are automatically integrated with your Laravel application and can be accessed using their default hostnames and ports. For example, you can access the MySQL database using mysql as the hostname and port 3306.


Running Artisan Commands: Sail provides a convenient way to run Artisan commands within the Docker environment. Instead of using php artisan directly, you can prefix your Artisan commands with ./vendor/bin/sail. For example, to run database migrations, you would use the command ./vendor/bin/sail artisan migrate.


Managing Docker Containers: Sail simplifies the management of Docker containers by providing a set of Artisan commands for starting, stopping, and managing the Docker environment. For example, you can use ./vendor/bin/sail down to stop the Docker containers and ./vendor/bin/sail up -d to start them in detached mode.


Customization and Configuration: While Sail provides a standardized development environment out of the box, you can customize and extend the environment to meet your specific requirements. You can modify the docker-compose.yml file and add additional services or adjust settings as needed.


Troubleshooting and Documentation: If you encounter any issues while using Laravel Sail, refer to the Laravel documentation and community resources for troubleshooting tips and guidance. The Laravel community provides extensive documentation and support to help you make the most of Sail for local development.


By following these steps, you can leverage Laravel Sail to streamline your local development workflow, maintain consistency across environments, and focus on building your Laravel applications with ease.

Previously at
Flag Argentina
time icon
Experienced Full Stack Engineer with expertise in Laravel and AWS. 7 years of hands-on Laravel development, leading impactful projects and teams.