Langkah Mudah Memasang Laravel Di Dalam Docker Container
Meskipun Laravel telah menyediakan Homestead yang berbasiskan Vagrant, saya lebih suka menggunakan Docker untuk jalankan Laravel. Ada beberapa alasan mengapa saya pilih Docker.
- Benar-benar enteng, dan konfigurasinya lumayan gampang, bisa ditata memakai sebuah arsip config.
- Tak ingin banyak servis yang jalan ada di belakang monitor yang berpengaruh pada sistem jalan cukup lambat. Dengan Docker, saya cuma menjalankan servis di saat diperlukan saja.
- Perbedaan aplikasi yang membuat saya harus menggunakan beberapa tool dengan versi yang berbeda.
Instalasi Docker
Untuk sistem operasi yang berbasiskan Linux, lumayan gampang untuk menginstal Docker pada mesin. Lakukan perintah berikut pada terminal untuk menginstal Docker.
sudo apt install docker.io
Atau perintah di bawah bagi yang menggunakan Arch.
sudo pacman -S docker
Jika Docker berhasil diinstall, kerjakan uji-coba dengan mengecek versi aplikasi itu.
docker -v
Docker version 1.6.2, build 7c8fca2
Saat sebelum menjalankan Docker, pastikan menggunakan perintah sudo atau masuk sebagai root. Atau, bila ingin menggunakan Docker tanpa akses root, dapat menambah group baru pada sistem operasi.
Supaya servis bisa berjalan di Docker, ada dua cara yang perlu dilakukan:
- Mengunduh gambar dari repositori Docker. Atau, kita bisa juga membuat sendiri apabila sudah memahami benar mengenai Docker.
- Membuat container berdasarkan gambar yang ada.
Sebagai langkah pertama dan percobaan, team Docker menyediakan gambar Hello World pada repositorinya yang beralamat komplet di https://hub.docker.com/_/hello-world/. Berikut cara unduh dan pembuatan container.
// unduh image
docker pull hello-world
// buat container berdasarkan image hello-world
docker run --name hello hello-world
// result
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com
For more examples and ideas, visit:https://docs.docker.com/engine/userguide/
Selamat!
Kalian telah berhasil membuat container pertama menggunakan Docker. Cara selanjutnya adalah mencoba install Laravel dari repositori Docker.
Untuk melihat daftar gambar yang sudah didownload, dapat menggunakan perintah di bawah.
docker images
Sedangkan itu untuk melihat container berdasarkan gambar di atas, dapat menggunakan perintah berikut.
docker ps -a
Download Gambar Laravel
Kita bisa jadi menggunakan gambar Ubuntu/Debian untuk membuat container virtual server. Tetapi, hal itu dirasa merepotkan, karena pada akhirnya kita harus memasang perangkat lunak lain satu-satu seperti Apache, PHP, dan MySQL pada container itu. Semakin lebih mempermudah saat memakai gambar dengan servis detail. Dalam masalah ini, kita ingin mengginstal Laravel, karena itu kita akan memakai gambar Laravel yang telah dibuat oleh pengguna Docker lain, ialah eboraas/laravel.
Meskipun sebagai gambar spesifik untuk Laravel, gambar itu tetap memakai sistem operasi berbasiskan Debian, dan beberapa program lain seperti Apache2, dan PHP5 didalamnya. Namun, semua otomatis dilakukan oleh sistem tanpa kita harus ribet komposisi sendiri di sana-sini.
Untuk mendownload gambar itu, jalankan perintah di bawah.
docker pull eboraas/laravel
docker images
Membuat Container Laravel
Gambar telah tersedia, cara selanjutnya adalah membuat container Laravel agar dijalankan lewat browser. Simpelnya, kita bisa membuat container itu dengan perintah ini.
docker run -d — name laravel -p 80:80 eboraas/laravel
Untuk mengetesnya, pastikan container sudah berjalan dengan perintah docker ps. Uji-coba selanjutnya bisa dilakukan langsung lewat browser dengan mengakses URL http://localhost. Apa hasilnya terlihat seperti gambar di bawah? Bila iya, karena itu kalian telah berhsil membuat container Laravel.
Kebingungan dengan perintah membuat dan menjalankan container di atas? Berikut sedikit penjelasannya.
-
docker run
. Perintah untuk membuat dan menjalankan container baru memakai gambar yang sudah didownload. -
-d
. Yang disebut singkatan dari detached (dilepaskan) . Maka, terminal bisa menerima input baru karena container jalan ada di belakang monitor. -
-p 80:80
. Port yang akan/sedang digunakan, dengan pola port arah:port asal. Seperti kita mengetahui, dalam container Laravel itu memakai Apache yang mana port bawaannya ialah 80. Jika ingin memakai port yang lain pada arah, kita bisa menggantinya seperti -p 8000:80, selanjutnya akses melalui browser dengan URL http://localhost:8000. -
--name laravel
. Memberikan nama pada container supaya lebih gampang diingat saat dioperasikan. -
eboraas/laravel
. Nama gambar yang dipakai untuk membuat container baru. Berisi beberapa paket seperti sistem operasi Debian, Apache, PHP, Composer, dan Laravel.
Container yang dibuat bisa dioperasikan dengan perintah tambahan, seperti dihentikan atau dimuat ulang, adapun perintahnya ialah seperti berikut.
// menghentikan container
docker stop laravel// memuat ulang container
docker restart laravel// menghapus container
docer stop laravel && docker rm laravel
Di Mana Berkas Laravel-nya?
Pertanyaan setelah itu, telah berhasil menginstal Laravel dengan gambar dan container Docker, lalu di mana letak berkas Laravel itu?
Untuk yang kesusahan memahami container, silahkan kita kira saja container itu seperti sistem operasi berbasiskan Linux yang dapat diinstall share jenis aplikasi. Untuk yang punyai VPS, tentulah memahami untuk mengakses server dari jauh dapat memakai bash SSH. Hal yang sama berlaku pada container Docker. Namun, bila VPS ada pada mesin yang lain, container Docker ada pada fisik yang serupa. Bisa disebut, sistem operasi (pada container), berjalan di atas sistem operasi yang kita gunakan sekarang ini.
Bila sudah cukup mengerti, kita dapat masuk ke sistem container dengan perintah.
docker exec -it laravel bash root@5bb96eccd613:/# root@5bb96eccd613:/# ls /var/www/laravel/ app bootstrap composer.lock database package.json public resources server.php tests artisan composer.json config gulpfile.js phpunit.xml readme.md routes storage vendor
docker exec -it laravel bashroot@5bb96eccd613:/#
root@5bb96eccd613:/# ls /var/www/laravel/
app bootstrap composer.lock database package.json public resources server.php tests
artisan composer.json config gulpfile.js phpunit.xml readme.md routes storage vendor
Dari output di atas, sangat jelas terlihat jika frame-work Laravel ada pada directory /var/www/laravel di container.
Nah, bila berkas Laravel ada pada container, bisakah memakai berkas dari mesin kita? Sudah pasti. Kita dapat dengan mudahnya menangani hal itu dengan perintah mount.