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
- Telah menginstal docker dan docker compose di server atau VPS
- Memiliki projek Laravel yang sudah siap deploy atau buat projek baru
- 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.

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!
Pengantar Hai, Sob! Buat kamu semua para developer yang lagi kepo gimana sih cara Upload Aplikasi Laravel ke Hosting? Nah, Read more
Hai Sob! Buat kamu semua para developer yang lagi kepo gimana sih cara Upload Aplikasi Laravel ke Hosting? Nah, tutorial Read more
Halo Sob! Bagi developer handal seperti kamu, mendengar istilah laravel dan clone git adalah sesuatu yang familiar bukan? Nah, kali Read more
Hai Sob! Sebagai seorang developer yang menggunakan laravel, kamu pasti tahu dong bahwa salah satu keuntungan menggunakan framework laravel adalah Read more