Instal Laravel Dalam Container Docker


Walaupun Laravel sudah menyediakan Homestead yang berbasis Vagrant, saya lebih suka menggunakan Docker untuk menjalankan Laravel. Ada beberapa alasan kenapa saya memilih Docker.

Sangat ringan, serta konfigurasinya cukup mudah, dapat diatur menggunakan satu buah berkas config.
Tak ingin banyak service yang berjalan di belakang layar yang berimbas pada sistem berjalan cukup lambat. Dengan Docker, saya hanya menjalankan service pada saat dibutuhkan saja.
Perbedaan aplikasi yang membuat saya harus menggunakan beberapa tool dengan versi yang berbeda-beda.

Sekilas dan gambaran tentang Docker: rizkimufrizal.github.io/belajar-docker

Instalasi Docker

Bagi sistem operasi yang berbasis Linux, cukup mudah untuk menginstal Docker pada mesin. Jalankan perintah berikut pada terminal untuk menginstal Docker.

$ sudo apt install docker

Atau perintah di bawah bagi yang menggunakan Arch.

$ sudo pacman -S docker

Apabila Docker berhasil diinstal, lakukan ujicoba dengan mengecek versi aplikasi tersebut.

$ docker -v

Docker version 1.6.2, build 7c8fca2

Sebelum menjalankan Docker, pastikan menggunakan perintah sudo atau masuk sebagai root. Atau, jika ingin menggunakan Docker tanpa akses root, bisa menambahkan grup baru pada sistem operasi. Selengkapnya mengenai penambahan grup dapat dibaca pada halaman berikut: http://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo.

Agar service dapat berjalan di Docker, ada dua langkah yang harus dilakukan:

  • Mengunduh image dari repositori Docker. Atau, kita juga bisa membuatnya sendiri jika sudah paham betul mengenai Docker.
  • Membuat container berdasarkan image yang tersedia.

Sebagai langkah awal dan percobaan, tim Docker menyediakan image Hello World pada repositorinya yang beralamat lengkap di https://hub.docker.com/_/hello-world. Berikut langkah 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 the
executable 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:

No Title

No Description

For more examples and ideas, visit:https://docs.docker.com/engine/userguide/

Selamat!
Kalian sudah berhasil membuat container pertama menggunakan Docker. Langkah selanjutnya adalah mencoba instal Laravel dari repositori Docker.

Untuk melihat daftar image yang sudah diunduh, dapat menggunakan perintah di bawah.

$ docker images

Sedangkan untuk melihat container berdasarkan image di atas, dapat menggunakan perintah berikut.

$ docker ps -a

Unduh Image Laravel

Kita bisa saja menggunakan image Ubuntu/Debian untuk membuat container virtual server. Tapi, hal tersebut dirasa merepotkan, karena pada akhirnya kita harus menginstal perangkat lunak lain satu persatu seperti Apache, PHP, dan MySQL pada container tersebut. Akan lebih memudahkan ketika menggunakan image dengan service spesifik. Dalam hal ini, kita ingin mengginstal Laravel, maka kita akan menggunakan image Laravel yang sudah dibuat oleh pengguna Docker lain, yaitu eboraas/laravel.

Walaupun merupakan image spesifik untuk Laravel, image tersebut tetap saja menggunakan sistem operasi berbasis Debian, dan beberapa aplikasi lain seperti Apache2, dan PHP5 di dalamnya. Hanya saja, semuanya otomatis dilakukan oleh sistem tanpa kita harus repot konfigurasi sendiri di sana-sini.

Untuk mengunduh image tersebut, jalankan perintah di bawah.

$ docker pull eboraas/laravel
$ docker images

Membuat Container Laravel

Image sudah tersedia, langkah selanjutnya adalah membuat container Laravel agar dapat dijalankan melalui peramban. Sederhananya, kita dapat membuat container tersebut dengan perintah berikut.

$ docker run -d — name laravel -p 80:80 eboraas/laravel

Untuk mengujinya, pastikan container telah berjalan dengan perintah docker ps. Ujicoba berikutnya dapat dilakukan langsung melalui peramban dengan mengakses URL http://localhos. Apakah hasilnya nampak seperti gambar di bawah? Jika iya, maka kalian sudah berhsil membuat container Laravel.

Halaman utama Laravel

Halaman utama Laravel

Kebingungan dengan perintah membuat dan menjalankan container di atas? Berikut sedikit penjelasannya.

  • docker run. Perintah untuk membuat dan menjalankan container baru menggunakan image yang telah diunduh.
  • -d. Yang merupakan singkatan dari detached (dilepaskan). Jadi, terminal dapat menerima input baru karena container berjalan di belakang layar.
  • -p 80:80. Port yang akan/sedang digunakan, dengan format port tujuan:port asal. Seperti kita tahu, dalam container Laravel tersebut menggunakan Apache yang mana port bawaannya adalah 80. Apabila ingin menggunakan port lainnya pada tujuan, kita dapat menggantinya seperti -p 8000:80, kemudian akses melalui peramban dengan URL http://localhost:8000.
  • --name laravel. Memberikan nama pada container agar lebih mudah diingat ketika dioperasikan.
    eboraas/laravel. Nama image yang digunakan untuk membuat container baru. Berisi beberapa paket seperti sistem operasi Debian, Apache, PHP, Composer, dan Laravel.

Selengkapnya mengenai opsi pada docker dapat dibaca pada tautan berikut: https://docs.docker.com/engine/reference/run/.

Container yang dibuat dapat dioperasikan dengan perintah tambahan, seperti dihentikan atau dimuat ulang, adapun perintahnya adalah sebagai berikut.

// menghentikan container
$ docker stop laravel

// memuat ulang container
$ docker restart laravel

// menghapus container
$ docker stop laravel && docker rm laravel

Di Mana Berkas Laravel-nya?

Pertanyaan selanjutnya adalah, sudah berhasil menginstal Laravel dengan image dan container Docker, lantas di mana letak berkas Laravel tersebut?

Bagi yang masih kesulitan memahami container, mari kita anggap saja container itu semacam sistem operasi berbasis Linux yang di dalamnya bisa diinstal berbagi macam aplikasi. Bagi yang punya VPS, pastilah paham untuk mengakses server dari jarak jauh bisa menggunakan bash SSH. Hal yang serupa juga berlaku pada container Docker. Hanya saja, jika VPS berada pada mesin yang berbeda, container Docker berada pada fisik yang sama. Bisa dibilang, sistem operasi (pada container), berjalan di atas sistem operasi yang kita gunakan saat ini.

Jika sudah cukup paham, kita bisa masuk ke sistem container dengan perintah.

$ docker exec -it laravel bash 

$ 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, sudah sangat jelas nampak kalau framework Laravel berada pada direktori /var/www/laraveldi container.

Nah, jika berkas Laravel ada dalam container, bisakah menggunakan berkas dari mesin kita? Tentu saja. Kita bisa dengan mudahnya menangai hal tersebut dengan perintah mount. Artikel berikutnya akan membahasa detail soal ini. 😉

Tak Berkategori

Yugo Purwanto

Pemrogram PHP dan JavaScript yang sedang sibuk mengembangkan aplikasi Glosarium Bahasa Indonesia.

1 comment

Tinggalkan Balasan