jalankan artisan composer migration laravel docker | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: jalankan artisan composer migration laravel docker

Wednesday, May 20, 2026

jalankan artisan composer migration laravel docker

🐳 SERI BELAJAR DOCKER · ARTIKEL 8 DARI 10

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         NAMES
a1b2c3d4e5f6   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.

# Install semua dependency Laravel
docker exec -it laravel_app composer install

# Install package baru (contoh: spatie/laravel-permission)
docker exec -it laravel_app composer require spatie/laravel-permission

# Update dependency
docker exec -it laravel_app composer update

# Dump autoload
docker exec -it laravel_app composer dump-autoload
Insight Penting

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

🔧 Alternatif: Gunakan docker compose exec untuk artisan composer migration Laravel Docker

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.

# Format: docker compose exec [nama_service] [perintah]
# (nama service = yang ada di docker-compose.yml)

docker compose exec app php artisan migrate
docker compose exec app php artisan key:generate
docker compose exec app composer install
docker compose exec app php artisan make:controller ProductController
docker compose exec app php artisan storage:link
🔬 Analysis: Kapan Pakai Yang Mana?
Aspek docker exec docker compose exec
Target Nama container (NAMES dari docker ps) Nama service (dari docker-compose.yml)
Lokasi eksekusi Di mana saja Harus di folder proyek (ada docker-compose.yml)
Kebutuhan compose Tidak perlu docker compose Perlu docker compose CLI
Rekomendasi Ketika container berjalan mandiri ✅ Lebih direkomendasikan untuk proyek Laravel
⚠️
Perhatian

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.

📋 Lihat Daftar Isi Lengkap →
✅ Kesimpulan

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! 🚀

🏷️ Tags
#BelajarDocker #ZeroToZorro #artisancomposermigrationLaravelDocker #LaravelDocker #PhpArtisan #Composer #Migration #DockerCompose
Navigasi Artikel
← Artikel Sebelumnya
Artikel 7
Konfigurasi Nginx + PHP-FPM + MySQL untuk Laravel di Docker Compose
Baca artikel →
Artikel Selanjutnya →
Artikel 9
Kelola File .env dan Storage Laravel dengan Aman di Docker

No comments:

Post a Comment

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