Cara Cepat Deploy Laravel Project di Docker

Halo, Sobat Jagoan! Jika ingin projek Laravel kamu dapat berjalan tanpa harus ribet setting environment lokal satu per satu, kini saatnya untuk mempertimbangkan deploy projek Laravel kamu di Docker. Dengan begitu, service seperti PHP, Nginx, dan MySQL bisa jalan bersama-sama dalam satu ekosistem container.

Memahami Lingkup Laravel di Docker

Sebelum lanjut ke panduan, baiknya kamu memahami bagaimana interaksi keduanya dalam lingkup kerjanya. Jika kamu meletakkan projek Laravel di Docker, manfaat yang akan kamu rasakan antara lain:

  • Docker memberikan konsistensi antara environment development dan production, sehingga katakan bye pada drama jalan di dev tapi error di prod
  • Container bisa berjalan di berbagai platform, mau pindah dari laptop ke server, atau lokal ke cloud, cukup push containernya, semua dapat berjalan tanpa kendala
  • Menjaga aplikasi tetap clean dan terorganisir dengan memisahkan setiap komponen ke dalam container tersendiri
  • Memudahkan scaling ketika kebutuhan resource meningkat
  • Menawarkan fleksibilitas untuk mencoba berbagai versi PHP atau database tanpa mengganggu environment utama

Disamping itu, menjalankan Laravel di Docker memerlukan proses setup yang kompleks atau bisa jadi rumit bagi pemula jika tidak terbiasa dengan konsep container. Minimal harus memahami dulu tentang dockerfile, compose, dan pengaturan network-nya. Selain itu, penggunaan container juga membuat proses debugging menjadi lebih menantang karena kamu perlu masuk ke dalam container dan memeriksa log secara manual, sehingga terasa lebih sulit dibandingkan menjalankan aplikasi langsung di host.

Prasyarat

  1. Telah menginstal docker dan docker compose di server atau VPS
  2. Memiliki projek Laravel yang sudah siap deploy atau buat projek baru
  3. Menyiapkan folder khusus untuk simpan semua file konfigurasi Docker seperti Dockerfile, docker-compose.yml, dan lain-lain

Cara Build Projek Laravel di Container Docker

STEP 1: Clone projek Laravel

Kalau projek kamu berada di GitHub atau remote repo lainnya, clone dulu ke direktori kerja.

				
					git clone https://github.com/namakamu/laravel-project.git
cd laravel-project
				
			

STEP 2: Jalankan container PHP dan mount Laravelnya

				
					code>docker run -d \
  --name php-laravel \
  -v $(pwd):/var/www/html \
  -w /var/www/html \
  -p 8000:8000 \
  php:8.2-cli
				
			

STEP 3: Masuk container

				
					docker exec -it php-laravel bash
				
			

STEP 4: Install composer, jika belum ada

				
					curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
				
			

STEP 5: Menginstal dependensi Laravel

				
					composer install
				
			

STEP 6: Set permission folder

				
					chmod -R 775 storage bootstrap/cache
				
			

STEP 7: Copy file .env dan jalankan generate key

				
					cp .env.example .env
php artisan key:generate
				
			

STEP 8: Jalankan Laravel

				
					php artisan serve --host=0.0.0.0 --port=8000
				
			

Kalau berhasil nanti akan menampilkan halaman default Laravel kurang lebih seperti berikut ini.

default page Laravel

Troubleshooting

Masalah umum yang sering terjadi ketika deploy Laravel di Docker dan cara mengatasinya:

  • Failed Start Laravel: Biasanya terjadi jika belum menginstal dependensi. Coba masuk ke container PHP kamu kemudian jalankan:
				
					composer install
				
			

Bisa juga karena belum mengatur permission file Laravel, jadi jalankan:

				
					chmod -R 775 storage bootstrap/cache
				
			
  • 404 Not Found: Kemungkinan besar dokumen root Nginx belum diarahkan ke public/. Periksa file konfigurasi Nginx ada di Docker dan pastikan baris berikut ada:
				
					root /var/www/html/public;
				
			
  • Laravel Gagal Connect ke MySQL: Periksa DB_HOST di file .env. Jika pakai docker compose, DB_HOST harus sesuai dengan nama service MySQL pada service docker-compose.yml, misalnya:
				
					DB_HOST=mysql
				
			
  • Error Permission: Masuk ke container PHP, lalu coba jalankan perintah artisan dari sana. Kadang masalahnya karena file .env atau direktori storage belum bisa diakses Laravel.
				
					php artisan config:clear
php artisan cache:clear

				
			
  • Nginx/Apache Error 502 Bad Gateway: Biasanya container PHP belum jalan atau belum connect ke Nginx jadi periksa di docker-compose.yml apakah service PHP dan Nginx telah di-link dan portnya cocok.

Selamat mencoba, Sob. Apabila ada yang masih bingung, jangan ragu hubungi Tim Support Jagoan Hosting melalui Live Chat atau Open Ticket, Sob. Good luck, ya!

Related Posts
Tutorial Upload Aplikasi Laravel ke Hosting Melalui cPanel

Pengantar Hai, Sob! Buat kamu semua para developer yang lagi kepo gimana sih cara Upload Aplikasi Laravel ke Hosting? Nah, Read more

Tutorial Install Laravel di cPanel Jagoan Hosting

Hai Sob! Buat kamu semua para developer yang lagi kepo gimana sih cara Upload Aplikasi Laravel ke Hosting? Nah, tutorial Read more

Cara Install Laravel Dari Clone Git di cPanel

Halo Sob! Bagi developer handal seperti kamu, mendengar istilah laravel dan clone git adalah sesuatu yang familiar bukan? Nah, kali Read more

Cara Membuat Storage Link pada Laravel

Hai Sob! Sebagai seorang developer yang menggunakan laravel, kamu pasti tahu dong bahwa salah satu keuntungan menggunakan framework laravel adalah Read more