20
OctDocker is an open-source containerization platform. It allows developers to package applications into containers and standardized executable components to combine application source code with the operating system (OS) libraries and dependencies, So they can run that code smoothly in any environment.
Laravel Sail is a lightweight command-line interface for interacting with Laravel’s default Docker development environment. It offers a great starting point for building a Laravel application utilizing PHP, MySQL, and Redis without requiring prior Docker experience.
Sail provides a Docker-powered local development experience for Laravel that is fit with macOS, Windows (WSL2), and Linux. Other than Docker, no software or libraries are needed to be installed on your local computer before using Sail. Sail’s simple CLI means you can start building your Laravel application without any previous Docker experience. Another benefit of Sail is that developers do not have to suffer about having the correct versions of the config software installed on their system. With a Sail container, if there is a break due to compatibility, you can just delete the container and create a new one, all carried away from your local environment and leaving no footprints on it.
This package includes two files. One is the docker-compose.yml
file that holds your application’s Docker containers, and the other is a Sail script
that offers you a CLI
for interacting with these containers. The docker-compose.yml
file is located in the root directory of your project, while the Sail script
is located in your vendor/bin directory
.
Docker should be installed on the operating system on which it has to run.
If you use Windows, you’ll need to install and enable Windows Subsystem for Linux 2 (WSL2). It will permit you to run Linux binary executables natively on your Windows OS.
Make sure to configure Docker Desktop to use the WSL2 backend. Otherwise, no Docker experience is required.
Laravel Sail is automatically installed with all new Laravel applications, so you may start utilizing it immediately. During installation, you will be asked to choose which Sail-supported services your application will be interacting with.
If you wanted to use Sail with an existing Laravel application, you can directly install Sail using the Composer
package manager.
composer require laravel/sail --dev
After Sail has been installed, you can run the sail:install
Artisan command. This command will publish Sail’s docker-compose.yml
file to the root of your application:
php artisan sail:install
Lastly, to kickstart Sail, run the following command:
./vendor/bin/sail up
If you wanted to develop within a Devcontainer, you can provide the –devcontainer
option to the sail:install
command. The –devcontainer
option will tell the sail:install
command to publish a default .devcontainer/devcontainer.json
file to the root
of your application:
php artisan sail:install --devcontainer
By default, Sail commands are invoked utilizing the vendor/bin/sail
script that is included with all new Laravel applications, However, you can configure a bash alias that’s just one word to make our commands shorter. Once the Bash alias has been configured, you can execute Sail commands by simply typing sail
.
We’ll replace the line vendor/bin/sail
with a word sail
:
alias sail='bash vendor/bin/sail'
To run all the containers in our docker-compose.yml
file and get our application started, we employ the following command:
sail up
To start the containers
in the background, we use:
sail up -d
Once your application is up and running, you can visit http://localhost
to view it.
To stop the containers
, press Control + C
on your keyboard. If they are running in the background, then run:
sail down
When running artisan
, composer
, and npm
commands, the sail alias
must precede the
commands.
For example instead of running:
php artisan migrate
You should run:
sail artisan migrate
And instead of running:
//Running Artisan commands locally...
php artisan queue:work
You should run:
//Running Artisan commands within Laravel Sail...
sail artisan queue:work
Instead of this:
composer require laravel/sanctum
You should run:
sail composer require laravel/sanctum
By following the above process, you will be able to create and set up a new Sail Application. You analyzed Sail’s docker-compose.yml
file and discovered some essential commands for running our Sail application and Container
Setup. But there’s a lot more about this package. The More You Know The More You Realize You Don’t Know. So if you want to dig more about Sail, you can check its official documentation here.
Published at : 20-10-2021
I am a highly results-driven professional with 12+ years of collective experience in the grounds of web application development especially in laravel, native android application development in java, and desktop application development in the dot net framework. Now managing a team of expert developers at Codebrisk.
Launch project