Laravel 8 banyak membawa perubahan (kalo ga mau disebut magic) dalam rilis kali ini https://laravel.com/docs/8.x/releases kalo yang baru berangkat dari versi sebelumnya, kemudian mencoba versi ini, kalo ga baca dengan teliti pasti akan kebingungan. Selain itu, versi ini juga membawa jargon-jargon baru, contohnya saja Sail (padahal Docker), Breeze (untuk generate basic auth function) dan Jetstream ( advance auth function).
Nah kali ini saya penasaran coba Laravel Sail, salah satu cara instalasi framework Laravel yang menggunakan Docker. Dikutip dari laman aslinya
If you’re developing on Linux and Docker is already installed, you can use a simple terminal command to create a new Laravel project
https://laravel.com/docs/8.x/installation#getting-started-on-linux
Kebetulan, semenjak belajar Docker, di komputer saya sudah mulai meninggalkan instalasi apache,mysql dkk langsung. Sebelum ini saya pake laradock untuk menjalankan Laravel.
Instalasi Laravel menggunakan Laravel Sail
Caranya sangat mudah seperti kebanyakan perintah magic di Laravel, kali ini yaitu
curl -s https://laravel.build/example-app | bash
Tunggu hingga selesai. Jangan lupa nyalakan service dockernya di komputer. Setelah selesai, masuk ke direktori example-app (ini bisa diganti sesuai kebutuhan, ga harus example app di perintah curl nya). Jalankan perintah
cd example-app ./vendor/bin/sail up
Sebenrnya ini perintah sama aja dengan docker-compose up, yaitu melakukan build, membuat dan menjakan container yang sudah di setup di docker-compose.yml. Coba buka docker-compose.yml disitu terlihat settingan yang familiar bukan?
Dalam kasus saya, karena saya ada beberapa container yang sudah berjalan dan menggunakan port yang sama (http dan mysql), kita bisa ubah port sesuai dengan yang diinginkan, misalnya untuk http diubah ke 8080 maka ubah saja bagian ports menjadi kaya gini
ports:
- '${APP_PORT:-8080}:80'
Selanjutnya buka localhost:8080 dan akan muncul halaman Laravel seperti biasa.
Saya iseng ingin menggabungkan container ini dengan traefik, ya sekedar coba-coba aja, kemudian saya coba set port https. Ternyata ga jalan. Usut-punya usut, hasil googling : Laravel Sail uses the build-in webserver that does not support ssl unfortunatly. Ealah, saya kira pake web server biasa macam nginx atau apache.
Sebenarnya masih banyak konfigurasi yang bisa disetting di laravel sail, cuma saya belum sempet. Yang penting udah jalan aja dulu, mau lihat fitur-fitur yang lain, karena jujur di versi ini saya tidak terlalu ngikutin banget.
Kesimpulan :
Bagi yang mau belajar Laravel dan Docker kayaknya mending buat docker-compose sendiri aja, atau malah pake Laradock, magicnya ga terlalu banyak, dan konfignya juga lebih banyak diatur