Do not speak Portuguese? Translate this site with Google or Bing Translator
Laravel 8 Sail

Posted on: October 24, 2022 10:56 PM

Posted by: Renato

Views: 118

Laravel 8 Sail

 O que é Laravel Sail?

Laravel Sail é uma interface de linha de comando que permite criar e gerenciar seu aplicativo Laravel no ambiente docker. Se você não sabe nada ou sabe um pouco sobre o docker, esta interface de linha de comando permite gerenciar seu ambiente do docker local.

 

 Como funciona o Laravel Sail?

A vantagem de usar o sail é que todas as dependências do seu projeto são gerenciadas pelo docker. Por exemplo: se seu projeto requer:

  • PHP
  • MySQL
  • Redis
  • Outras dependências

O Sail instalará todas as dependências do seu projeto usando o docker nos bastidores. Você não precisa instalar nenhuma das dependências acima em sua máquina local para trabalhar com o projeto Laravel.

Vejamos o diagrama a seguir para entender como o Laravel Sail funciona:

Em seu projeto Laravel Sail você encontrará um arquivo chamado docker-compose.yml. Este arquivo basicamente define diferentes serviços que seu projeto requer. Por exemplo, se o seu projeto Laravel requer:

  • PHP
  • MySQL
  • Redis

Então você verá todas as dependências acima em serviços no arquivo docker-compose.yml. Basicamente, ele diz às velas que eu quero criar todos os contêineres mencionados em serviços no arquivo docker-compose.yml.

Quando o sails for executado, ele extrairá todas as imagens necessárias do dockerhub e, em seguida, criará um contêiner para cada serviço definido em seu arquivo docker-compose.yml. Você pode adicionar mais serviços se precisar com base em seu projeto, aprenderemos sobre eles em detalhes posteriormente neste tutorial.

Você economiza muito tempo descobrindo a instalação local para php, redis ou mysql ou algumas outras dependências em sua máquina.

 Como instalar o Laravel Sail?

Você precisa ter as seguintes dependências instaladas em sua máquina mac ou linux antes de prosseguir com o Laravel Sail:

Depois de instalar as dependências acima, vamos começar a instalar um novo projeto laravel usando o Laravel Sail. Abra sua janela de terminal e execute os seguintes comandos um por um:

# install laravel using curl
# change example-app to your project name
curl -s "https://laravel.build/example-app" | bash

# once installed run docker containers using
./vendor/bin/sail up

# to destroy running container run
./vendor/bin/sail down​

Até agora, você instalou o projeto Laravel usando o script bash fornecido pelo Laravel. Depois que o projeto for instalado localmente, você encontrará velas no seguinte local:

./vendor/bin/sail​

 

 Como instalar o Laravel Sail em um projeto Laravel existente?

Se você já possui o projeto Laravel e não está usando o Laravel Sail, você pode basicamente executar os seguintes comandos para instalar o Sail em seu projeto existente:

 

# install composer dependency for sail
composer require laravel/sail --dev

# publish Sail's docker-compose.yml file to the root of your application
php artisan sail:install​

Como executar seu aplicativo Laravel usando o Sail?

Depois de instalar o Sail em seu projeto Laravel, você precisa conhecer alguns dos seguintes comandos importantes para interagir com seu aplicativo Laravel dockerizado.

Lembre-se de que todos os seus serviços são executados em diferentes contêineres do docker e, portanto, você não poderá executar comandos do Laravel diretamente do seu terminal, portanto, usamos a interface de linha de comando Sail.

 

O Laravel Sail basicamente permite que você execute comandos dentro do seu contêiner em execução sem fazer login no contêiner usando ssh. Você entenderá o que quero dizer com isso quando começarmos a executar os seguintes comandos:

# Run Laravel Project Locally
# Following command will run all containers
# Defined in docker-compose.yml file
./vendor/bin/sail up

# If you want to stop all running containers
./vendor/bin/sail stop

# To check what containers are running run
# It will list all containers if any of them running
./vendor/bin/sail

# To destroy your running laravel app run
# This command will destroy all of your docker containers
./vendor/bin/sail down

# If you want to run unit tests
./vendor/bin/sail test
./vendor/bin/sail test --group orders​

Como executar comandos artesanais do Laravel usando o Sail?

Como eu disse anteriormente, seus serviços são executados dentro de contêineres do docker e, portanto, a execução do comando Laravel artisan não funcionará se você estiver usando o Laravel Sail, no entanto, usando o sail, você pode executar todos os seus comandos do artisan.

Aqui está como você pode executar o artisan ou outros comandos usando o Laravel Sail:

# run artisan command using sail
# use following syntax for your artisan commands
./vendor/bin/sail artisan <command>

# example
./vendor/bin/sail artisan queue:work

# if you want to execute php command or script use
# following syntax for php commands
./vendor/bin/sail php <command>

# example
./vendor/bin/sail php --version

# to run composer commands using sail
# use following syntax
./vendor/bin/sail composer <command>

# exaamples
./vendor/bin/sail composer install
./vendor/bin/sail composer update
./vendor/bin/sail composer require laravel/sanctum

# if your project runs on npm or node or yarn use
# following sytaxes
./vendor/bin/sail npm <command>
./vendor/bin/sail yarn <command>
./vendor/bin/sail node <command>

# examples
./vendor/bin/sail yarn install
./vendor/bin/sail npm install
./vendor/bin/sail node --version

# if you want to ssh into container
./vendor/bin/sail bash

# if you want to check container logs
./vendor/bin/sail logs -f

# if you want to restart specific service
./vendor/bin/sail restart <service_name>
./vendor/bin/sail restart mysql​

Espero que você goste deste tutorial,

Fonte: https://learn2torials.com/a/what-is-laravel-sail


5

Share
About Author

Renato

Developer

Add a Comment
Comments 0 Comments

No comments yet! Be the first to comment

Blog Search


Categories

OUTROS (12) Variados (109) PHP (110) Laravel (117) Black Hat (3) front-end (25) linux (89) postgresql (35) Docker (15) rest (4) soap (1) webservice (6) October (1) CMS (2) node (7) backend (10) ubuntu (43) devops (22) nodejs (5) npm (2) nvm (1) git (5) firefox (1) react (6) reactnative (5) collections (1) javascript (5) reactjs (7) yarn (0) adb (1) solid (0) blade (2) models (1) controllers (0) log (0) html (2) hardware (2) aws (14) Transcribe (2) transcription (1) google (3) ibm (1) nuance (1) PHP Swoole (4) mysql (23) macox (2) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (2) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (13) faceapp (1) eloquent (11) query (2) sql (35) ddd (3) nginx (6) apache (4) certbot (1) lets-encrypt (2) debian (9) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (3) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (1) binaural (1) mysqli (3) database (33) windows (2) vala (1) json (2) oracle (1) mariadb (2) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (1) piada (1) cron (2) dba (13) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (3) bash (2) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (0) biologia (1) programming (20) performance (2) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (1) microg (1) iode (1) ssh (1) zsh (1) terminal (1) dracula (1) spaceship (1) mac (1) idiomas (1) laptop (1) developer (27) api (1) data (1) matematica (1) seguranca (2) 100DaysOfCode (6) hotfix (1) documentation (1) laravel (2) RabbitMQ (1) Elasticsearch (1) redis (2) Raspberry (3) Padrao de design (4) JQuery (1) angularjs (2) Dicas (13) kubenetes (1) vscode (1) backup (1) angular (1) servers (2) pipelines (1) AppSec (1) DevSecOps (2) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (1) jwt (1) security (1) translate (1) kube (1) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (2) traefik (1) networking (1) host (1) POO (1) microservices (1) bug (1) cqrs (1) arquitetura (1) Architecture (1) sail (1) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1)

New Articles



Get Latest Updates by Email