Ở bài trước thì chúng ta đã học cách Cài đặt môi trường dev Laravel sử dụng Docker, một cách dễ dàng với Sail, thì ở bài này chúng ta cùng đi sâu hơn vào sử dụng Sail nào
Cấu hình Alias cho Sail
Mặc định thì, Sail gọi script vendor/bin/sail
để khởi động dòng lệnh, ví dụ
./vendor/bin/sail up
Tuy nhiên, như các bạn thấy thì nó khá cồng kềnh. Chúng ta sẽ tạo alias cho nó bằng cách gõ dòng lệnh này vô terminal
alias sail='bash vendor/bin/sail'
Như vậy thì command sail
là cả cái cụm trên và chúng ta có thể gõ nhanh sail up
Để tránh việc phải gõ cái alias mỗi lần khởi động thì chúng ta nên nhét luôn nó vô profile. Như mình xài zsh thì mình nhét nó vào ~/.zshrc
Khởi động và tắt Sail
File docker-compose.yml
của Laravel Sail xác định Docker container hoạt động cùng nhau để giúp bạn xây dựng các ứng dụng Laravel. Mỗi container này là một mục trong cấu hình services
bên trong docker-compose.yml
của bạn.
Trước khi bắt đầu Sail, bạn nên đảm bảo rằng không có webserver (Nginx, Apache,...) hoặc cơ sở dữ liệu (MariaDB, MongoDB,...) nào khác đang chạy trên local của bạn. Để khởi động tất cả các Docker container được khai báo trong tệp docker-compose.yml
, bạn chỉ cần thực hiện lệnh up:
sail up
lệnh này hoạt động gần như php artisan serve
vậy, nhưng mang theo nhiều thứ hơn, ví dụ như redis
, php8
, mysql8
, ...
Mình thích nó chạy background hơn, nên mình dùng lệnh
sail up -d
Sau khi project đã được khởi động, chúng ta có thể truy cập trang web sản phẩm của chúng ta ngay tại http://localhost
Cũng giống như php artisan serve
, để dừng Sail, chúng ta chỉ cần ấn tổ hợp Ctrl + C, còn nếu bạn giống mình, chạy ở background thì cần dùng command
sail down
Giao diện dòng lệnh (CLI) với Sail
Khi chúng ta sử dụng Laravel Sail, ứng dụng của chúng ta được thực thi ở bên trong một Docker container riêng, một hệ điều hành ảo riêng, độc lập với hệ điều hành của chúng ta. Nhưng không sao, việc nào khó cứ để Laravel lo Laravel Sail cung cấp các shortcut để thực thi các lệnh trực tiếp trên project của bạn, mà không cần phải chạy vào trong Docker container.
Xuyên suốt Documentation của mình, các bạn sẽ thấy hầu hết các ví dụ thao tác với dòng lệnh, là cần phải thao tác với Composer, Artisan, Node/NPM. Và Sail cung cấp sẵn luôn cho các bạn shortcut để thực hiện các thao tác như này. Thay vì composer
, php artisan
, npm
thì giờ chúng ta có sail composer
, sail artisan
, sail npm
tương ứng.
Container CLI
Đôi khi chúng ta vẫn cần phải vào trong Docker container, chỉ cần gõ:
sail shell
muốn mở Tinker để thao tác thì chúng ta có
sail artisan tinker
# hoặc
sail tinker
Trên đây là vài thao tác cơ bản với Sail, ở bài tiếp theo mình sẽ giới thiệu thêm về các file config của Docker. Hẹn gặp lại