Cara Jalankan Artisan, Composer, dan Migration Laravel di dalam Container
Bingung gimana cara pakai php artisan, composer, dan migration Laravel saat semuanya hidup di dalam Docker container? Tenang — habis baca ini kamu langsung bisa!
#Docker#Laravel#Artisan#Composer#Migration
⏱️
Estimasi Baca
9 Menit
🎯
Level
Pemula–Menengah
📅
Tahun
2026
📦
Seri
Zero to Zorro
Pernah nggak sih, kamu udah susah-susah setup Docker untuk Laravel, terus pas mau jalanin artisan composer migration Laravel Docker malah bingung — "Lah, perintahnya diketik di mana? Di host? Di dalam container? Atau di dimensi lain?" 😅 Kalau pernah, selamat — kamu nggak sendirian. Ini salah satu kebingungan paling umum yang dialami pemula saat pertama kali pindah ke workflow berbasis container.
Bedanya environment Docker dengan development lokal biasa adalah: semua proses, binary, dan dependensi Laravel kamu hidup di dalam container. Jadi kalau kamu ketik php artisan migrate langsung di terminal host, sistem kamu bakal bengong karena PHP-nya ada di dalam container, bukan di laptop kamu. Artikel ini hadir untuk menuntaskan kebingungan itu — tuntas, praktis, dan langsung bisa kamu coba sekarang.
💎 Konsep Kunci
docker exec = Teleport ke Dalam Container
Untuk menjalankan perintah apa pun (artisan, composer, migration) di dalam Docker container Laravel, kamu hanya perlu satu senjata utama: docker exec -it [nama_container] [perintah]. Ini adalah "pintu masuk" ke lingkungan hidup container kamu.
🏠 Analogi: Docker Container Itu Seperti Apartemen Berbeda
Bayangkan kamu tinggal di sebuah gedung apartemen. Setiap unit apartemen punya dapur, kulkas, dan peralatan sendiri-sendiri — nggak bisa pakai punya tetangga. Docker container bekerja persis sama. Container PHP/Laravel kamu punya instalasi PHP, Composer, dan Artisan-nya sendiri. Laptop kamu (host) adalah "lobby" gedung — kamu bisa lihat pintu-pintunya, tapi nggak bisa masak di dapur apartemen orang tanpa masuk dulu.
Perintah docker exec adalah kunci apartemen itu. Begitu kamu exec ke dalam container, semua perintah PHP/Artisan/Composer berjalan di dalam lingkungan container — dengan PHP versi yang tepat, environment variable yang tepat, dan koneksi database yang sudah tersedia.
💡
Tips Penting
Cek nama container Laravel kamu dengan perintah docker ps. Kolom NAMES menunjukkan nama container yang perlu kamu pakai di setiap perintah docker exec. Nama default biasanya diambil dari nama service di docker-compose.yml.
⚡ Cara Jalankan Artisan dan Composer di dalam Docker Container
Ada dua cara utama menjalankan perintah artisan, composer, dan migration Laravel di Docker. Kita bahas keduanya satu per satu beserta contoh perintah lengkap yang langsung bisa kamu praktikkan.
📋 Cara 1: Eksekusi Langsung dari Host (Paling Sering Dipakai)
1
Cek container yang berjalan
Pastikan container Laravel kamu aktif terlebih dahulu.
# Lihat semua container yang aktif
docker ps
# Output contoh:CONTAINER ID IMAGE NAMESa1b2c3d4e5f6 app-php-fpm laravel_app
2
Jalankan perintah Artisan
Gunakan docker exec diikuti nama container dan perintah artisan yang ingin dijalankan.
# Format umum
docker exec -it laravel_app php artisan [perintah]
# Contoh: lihat semua perintah artisan
docker exec -it laravel_app php artisan list
# Contoh: generate key aplikasi
docker exec -it laravel_app php artisan key:generate
# Contoh: buat controller baru
docker exec -it laravel_app php artisan make:controller UserController
# Contoh: cache config
docker exec -it laravel_app php artisan config:cache
3
Jalankan Composer di dalam Container
Sama persis polanya — tinggal ganti perintahnya ke composer.
Flag -it pada perintah docker exec berarti interactive + tty. Ini penting untuk perintah yang butuh input interaktif. Kalau kamu menjalankan perintah non-interaktif (misal dari CI/CD), kamu bisa hilangkan flag ini dan cukup pakai docker exec laravel_app php artisan migrate saja.
📋 Cara 2: Masuk ke Shell Container Dulu (Untuk Sesi Panjang)
1
Masuk ke dalam shell container
Kalau kamu mau jalankan banyak perintah sekaligus, lebih efisien masuk ke shell container dulu.
# Masuk ke shell bash container
docker exec -it laravel_app bash
# Atau pakai sh jika bash tidak tersedia
docker exec -it laravel_app sh
# Setelah masuk, prompt berubah menjadi:root@a1b2c3d4e5f6:/var/www/html## Sekarang kamu bisa langsung ketik:
php artisan key:generate
php artisan make:model Product -m
composer install
composer require laravel/sanctum
🗃️ Menjalankan Artisan Migration Laravel di Docker: Panduan Lengkap
Migration adalah jantung dari manajemen database di Laravel. Di lingkungan Docker, migration berjalan di dalam container PHP yang sudah terkoneksi ke container database (MySQL/PostgreSQL) lewat Docker network. Selama konfigurasi .env kamu benar, migration akan berjalan mulus.
1
Pastikan koneksi database tersetting dengan benar
Di file .env, DB_HOST harus diisi dengan nama service MySQL di docker-compose, bukan localhost.
# Di file .env Laravel
DB_CONNECTION=mysql
DB_HOST=mysql# ← nama service di docker-compose.yml
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel
DB_PASSWORD=secret
2
Jalankan migration dan perintah database artisan
# Jalankan semua migration
docker exec -it laravel_app php artisan migrate
# Migration + seed data awal
docker exec -it laravel_app php artisan migrate --seed
# Reset dan jalankan ulang semua migration
docker exec -it laravel_app php artisan migrate:fresh
# Reset + seed sekaligus (sering dipakai dev)
docker exec -it laravel_app php artisan migrate:fresh --seed
# Rollback migration terakhir
docker exec -it laravel_app php artisan migrate:rollback
# Lihat status migration
docker exec -it laravel_app php artisan migrate:status
3
Membuat file migration baru
# Buat migration baru untuk tabel products
docker exec -it laravel_app php artisan make:migration create_products_table
# Buat model + migration sekaligus
docker exec -it laravel_app php artisan make:model Product -m
# Buat seeder
docker exec -it laravel_app php artisan make:seeder ProductSeeder
🔥
Fakta Menarik
Perintah php artisan make:model dengan flag -mcrf bisa generate Model + Migration + Controller + Request + Factory dalam satu perintah! Coba: docker exec -it laravel_app php artisan make:model Product -mcrf
Selain docker exec, kamu juga bisa gunakan docker compose exec langsung berdasarkan nama service di docker-compose.yml — tanpa perlu hafal nama container yang panjang.
Jangan pernah jalankan php artisan migrate:fresh di lingkungan production! Perintah ini akan menghapus semua tabel dan data lalu membuatnya ulang dari nol. Gunakan hanya di environment development atau staging.
🚀 Tips Workflow: Bikin Alias untuk Artisan dan Composer Docker
Ngetik docker compose exec app php artisan berkali-kali itu capek. Solusinya? Buat alias di terminal kamu!
# Tambahkan ke ~/.bashrc atau ~/.zshrc# Alias untuk artisan
alias artisan="docker compose exec app php artisan"
# Alias untuk composer
alias dcomposer="docker compose exec app composer"
# Reload shell
source ~/.bashrc
# Sekarang kamu bisa pakai:
artisan migrate
artisan make:controller ProductController
dcomposer install
dcomposer require livewire/livewire
💡
Tips Pro
Kamu juga bisa membuat file Makefile di root proyek Laravel kamu untuk mendefinisikan shortcut perintah Docker. Ini jauh lebih rapi untuk proyek tim karena semua developer pakai perintah yang sama tanpa perlu setup alias di masing-masing mesin.
📚 Bagian dari Seri
Seri Belajar Docker: Docker from Zero to Zorro
10 artikel yang membawa kamu dari nol hingga mahir menggunakan Docker untuk proyek Laravel.
Sekarang Kamu Sudah Bisa Pakai artisan composer migration Laravel Docker!
Di artikel ini, kita sudah belajar bahwa menjalankan artisan, composer, dan migration Laravel di Docker tidak sesulit kelihatannya. Kuncinya hanya tiga hal:
Gunakan docker exec -it [container] [perintah] untuk eksekusi langsung dari host
Atau gunakan docker compose exec [service] [perintah] untuk workflow berbasis compose
Pastikan DB_HOST di .env diisi nama service database, bukan localhost
Ini adalah artikel ke-8 dari seri 10 Artikel Belajar Docker: Docker From Zero to Zorro. Selanjutnya, kita akan bahas cara mengelola file .env dan storage Laravel dengan aman di dalam Docker.
💬 Punya pertanyaan atau kesulitan saat menjalankan artisan/composer di container? Tulis di kolom komentar — kita debug bareng! Dan kalau artikel ini membantu, share ke teman-teman yang lagi belajar Laravel + Docker ya! 🚀
saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux
No comments:
Post a Comment