Laravel : Teknologi Virtualisasi Menggunakan Docker

Dana Irwanda
5 min readJul 15, 2018

Hai guys, kali ini saya akan share pengalaman dalam men-deploy framework laravel menggunakan docker.

Docker saat ini banyak digunakan oleh para developer sebagai salah satu tool yang membantu dalam proses development sebuah project berbasis website.

Apa itu Docker ?

Docker adalah sebuah teknologi virtualisasi atau bayangan yang memungkinkan kita sebagai developer untuk membangun, mengemas dan menjalankan aplikasi di sistem operasi manapun yang diletakkan pada sebuah container atau wadah.

Kenapa harus Docker ?

Docker memudahkan para developer untuk proses development sebuah project berbasis websiste, sebab dengan menggunakan docker kita mungkin sudah tidak menggunakan XAMPP,LAMPP,WAMPP, karena semua kebutuhan untuk website sudah terinstal di docker yang terletak pada kontainer.

Kebutuhan

sebelum kita praktek menggunakan docker, pastikan mapping dulu kebutuhan web server yang ingin kita instal pada docker, berikut adalah kebutuhannya.

Requirements :
1. NGINX
2. PHP 7.1.19
3. MySQL 5.6
4. Redis

Arsitektur

arsitektur laravel dengan docker

Praktek

1. Laravel

Instal terlebih dahulu laravel versi terakhir menggunakan perintah ini.

composer create-project --prefer-dist laravel/laravel laradocker

Pastikan laravel berjalan di localhost dengan mengetik perintah ini.

cd laradocker
php artisan serve

Pada browser jalankan laravel dengan perintah ini.

http://localhost:8000/

hasil ketika sudah jalan pada browser.

laravel berjalan tanpa docker

2. Docker

Setup Docker

Diasumsikan pada laptop kita sudah terinstal docker, langkah selanjutnya buka terminal dan lakukan perintah berikut untuk mengetahui bahwa docker sudah terinstal sesuai dengan versinya.

docker --version

lakukan perintah ini untuk mengecek docker-compose dan pastikan sudah ada berikut versinya juga, docker-compose nantinya akan digunakan sebagai perintah untuk menjalankan container docker secara bersamaan.

docker-compose --version

Konfigurasi file docker

Untuk konfigurasi pada docker kita akan membuat beberapa file yang memiliki fungsi masing-masing untuk menjalankan laravel di docker, berikut file yang dibutuhkan.

docker-compose.yml, berfungsi seperti route yang menjadi konfigurasi awal yang menghubungkan ke beberapa root folder, image dan dockerfile yang dibuat.

app.dockerfile, berfungsi untuk menginstal PHP 7 beserta komponennya sebagai driver untuk menghubungkan ke MySQL.

web.dockerfile, berfungsi untuk menginstal NGINX yang digunakan untuk menjalankan localhost.

vhost.conf, berfungsi untuk sebagai konfigutasi dasar untuk menjalankan NGINX sebagai web server.

Untuk membuat file nya nanti pada root folder di project kita, struktur filenya bisa dilihat pada gambar ini.

struktur file pada project laravel docker

docker-compose.yml

docker-compose.yml

app.dockerfile

app.dockerfile

web.dockerfile

web.dockerfile

vhost.conf

vhost.conf

jika sudah membuat keempat file tersebut dan pastikan bahwa tidak ada yang typo, kemudian jalankan file tersebut dengan perintah ini.

docker-compose up -d

maksut perintah diatas nanti akan pull image yang kita butuhkan yang sudah kita lakukan di file konfigurasi tadi, yang nantinya image tersebut kan membuat sebuah kontainer pada docker. image yang kita buat adalah NGINX, PHP 7, MySQL.

setelah nanti dijalankan dengan perintah docker-compose up -d, lalu pastikan bahwa kontainer sudah berjalan dengan mengetik perintah ini.

docker ps

berikut hasil dari menjalankan docker melalui command line.

menjalankan kontainer pada docker

kemudian jalankan localhost yang sudah kita instal di docker, dengan bantuan browser.

docker sudah berjalan pada localhost:8080

Menjalankan Database pada Docker

Selanjutnya kita akan mencoba untuk menjalakan database yang sudah kita instal di docker, yang diatas itu masih NGINX saja yang berjalan.

lakukan konfigurasi database pada file .env

konfigurasi database pada file .env

setelah itu lakukan migrasi tabel bawaan dari laravel dengan perintah ini.

php artisan migrate

jika berhasil, tambahan sedikit script pada route laravel, kalau saya menginstal laravel 5.6 berarti di file route/web.php.

tambahan script di route untuk mengetes database

lakukan pengetesan database dengan URL localhost:8080/testData. Disini digunakan postman untuk membantu proses test pada url.

pengetesan database pada docker sudah berjalan.

Menjalankan Cache pada Docker

setelah kita memastikan web server NGINX dan database MySQL sudah berjalan. selanjutnya kita tes redis apakah sudah berjalan juga di docker. redis ini adalah teknologi untuk cache data agar membantu dalam me-load data dalam jumlah besar.

oke, sebelumnya jalan lupa untuk menginstal package pada laravel dengan perintah ini.

composer require predis/predis:~1.0

jika sudah berhasil instal, tambahkan script di file route seperti yang kita lakukan tadi pada sesi database.

pengetesan redis pada docker sudah berjalan.

lakukan pengetesan database dengan URL localhost:8080/testCache. Disini digunakan postman untuk membantu proses test pada url.

pengetesan redis pada docker sudah berjalan.

Source Code

untuk lebih jelasnya secara keseluruhan source code nya bisa dilihat di github berikut ini.

Kesimpulan

Yay, sudah selesai belajar kita tentang bagaimana kita membuat sesuatu hal yang baru dalam development project, ya docker memang teknologi yang sedang nge-trend yang sangat membantu untuk mengurangi pusing kepala pada saat proses development, semoga bermanfaat.
see you on top :)

Referensi

--

--