Laravel Sail adalah solusi resmi Docker dari Laravel yang memungkinkan Anda mengembangkan aplikasi Laravel dalam kontainer Docker tanpa harus memahami semua detail tentang Docker. Sail menyediakan lingkungan pengembangan yang sederhana untuk Laravel yang memanfaatkan Docker dan memungkinkan Anda menjalankan aplikasi Laravel dengan semua dependensinya, termasuk database, Redis, dan lainnya, dalam lingkungan kontainer yang konsisten.
Dockerizing aplikasi Laravel dengan Sail memungkinkan Anda menjalankan proyek Laravel di mana saja tanpa perlu mengkonfigurasi ulang dependensi setiap kali berpindah mesin atau lingkungan. Dalam panduan ini, kita akan menjelajahi langkah-langkah untuk dockerize aplikasi Laravel menggunakan Laravel Sail, dari pengaturan proyek hingga menjalankan aplikasi Laravel di dalam kontainer Docker.
composer create-project laravel/laravel my-laravel-app
cd my-laravel-app
composer require laravel/sail --dev
php artisan sail:install
Anda akan diberikan beberapa pilihan, Pilih sesuai kebutuhan Anda.
./vendor/bin/sail
untuk memanage Docker. Untuk memulai aplikasi Anda di Docker, jalankan perintah berikut:./vendor/bin/sail up
Sail akan mendownload semua image Docker yang dibutuhkan dan memulai kontainer Docker untuk aplikasi Anda. Anda bisa mengakses aplikasi Laravel Anda di http://localhost
.
artisan
atau composer
di dalam kontainer Docker. Misalnya, untuk menjalankan perintah artisan
di dalam kontainer, gunakan:./vendor/bin/sail artisan migrate
Atau untuk menjalankan Composer:
./vendor/bin/sail composer install
docker-compose.yml
yang terdapat pada folder proyek Laravel anda, Untuk mengatur bagaimana Sail mengelola kontainer Docker. Anda bisa mengubah konfigurasi ini jika diperlukan, seperti menambah layanan atau mengubah pengaturan database. Contoh konfigurasi dasar docker-compose.yml
:version: '3'
services:
laravel.test:
build:
context: ./docker/8.0
dockerfile: Dockerfile
ports:
- '${APP_PORT:-80}:80'
volumes:
- '.:/var/www/html'
networks:
- sail
mysql:
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}'
networks:
- sail
./vendor/bin/sail down