Aprende Inglés, Desarrollo Web, AI a precio especial.

Antes:$249

Currency
$209
Comienza ahora

Termina en:

02d

12h

16m

50s

4

Laravel Sail, Docker en Laravel 8.

Ya que se ha visto mucho de Laravel 8, veo al inicio de la documentación a Laravel Sail. Ya sabiendo Docker seguí la documentación y me encanto esta nueva librería ❤️.

Laravel Sail es un como un helper que crea un docker-compose con diversos contenedores seleccionables desde la CLI.

Instalación:

  1. Primeramente necesitas tener docker, docker-compose y composer en el local para instalar Laravel y Laravel Sail.
  2. Con Laravel instalado ejecutas los siguiente comandos para instalar y generar el docker-compose.
composer require laravel/sail --dev
php artisan sail:install
  1. Crea un alias para poder ejecutar los comandos de manera mas sencilla.
aliassail='bash vendor/bin/sail
  1. Ahora corres los contenedores, esperas a que se descarguen las imágenes y se ejecuten.
sail up

Y listo, ya tienes todo el ambiente instalado y corriendo.

Respecto a este punto te puedo explicar que en el docker-compose obtiene tus credenciales del archivo de configuracion .env.

// docker-compose.ymlmysql:
        image: 'mysql:8.0'ports:
            - '${FORWARD_DB_PORT:-3306}:3306'environment:
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'MYSQL_DATABASE: '${DB_DATABASE}'MYSQL_USER: '${DB_USERNAME}'MYSQL_PASSWORD: '${DB_PASSWORD}'MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'// .env
DB_CONNECTION=mysql	
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

Y en cuanto a la comunicación entre los contenedores, estos se conectan mediante una red definida en el mismo docker-compose, y además los contenedores exponen puertos que se vinculan a puertos de nuestro local. Mientras que nuestro proyecto de laravel se vincula como volumen en el contendor principal en la raiz /var/www/html.

// vinculación del puerto con nuestra app al puerto 80ports:
            - '${APP_PORT:-80}:80'environment:
            WWWUSER: '${WWWUSER}'LARAVEL_SAIL: 1// vinculación de toda nuestra app a la ruta del servidorvolumes:
            - '.:/var/www/html'// la red en la que se conectara el contenedor y pueda comunicarse con los demás.networks:
            - sail

En cuanto a la ejecución de comandos puedes ejecutar comandos de php (para comandos de artisan) y docker-compose como sail, por ejemplo en vez de php artisan migrate, ejecuta sail artisan migrate, o docker-compose up -d ejecuta sail up -d. Mientras que los comandos de composer, y npm solo escribes al inicio sail y listo, por ejemplo sail npm install.

Hay diversos comandos de docker-compose que necesitarás, pero antes de decirte unos te recomiendo ver el nuevo Curso de Docker, donde aprenderás los fundamentos acerca de los contenedores, sobre docker y docker-compose.

Comandos básicos de docker-compose:

  • docker-compose ps | sail ps : ver los contenedores en ejecución.
  • docker-compose down | sail down : Parar los contenedores y eliminarlos.
  • docker-compose up | sail up: Correr los contenedores, aquí mismo te va mostrando los logs de todos los contenedores.
  • docker-compose up -d | sail up -d: Correr los contenedores en modo background.
Escribe tu comentario
+ 2