Docker Image vs Git Repo: Kapan Menggunakan Masing-Masing
Perbandingan dua metode deployment di getlaunch.dev dan kapan sebaiknya menggunakan masing-masing.
Dua Cara Deploy di getlaunch.dev
getlaunch.dev menyediakan dua metode deployment:
- Deploy dari Git Repository — Platform build Docker image dari source code kamu
- Deploy dari Docker Image — Kamu menyediakan Docker image yang sudah di-build
Keduanya menghasilkan container stateless, tapi prosesnya berbeda.
Deploy dari Git Repository
Cara Kerja
- Hubungkan akun GitHub
- Pilih repository dan branch
- Platform build image menggunakan Dockerfile di repository
- Container di-deploy otomatis
Kelebihan
- Auto-deploy: Setiap push ke branch yang dipilih otomatis trigger deployment
- CI/CD terintegrasi: Tidak perlu setup pipeline terpisah
- Version tracking: Setiap deployment terkait dengan commit tertentu
- Lebih mudah: Tidak perlu build dan push image secara manual
Kapan Menggunakan
- Kamu punya source code di GitHub
- Ingin auto-deploy setiap kali push
- Project masih dalam tahap aktif development
- Tim kecil yang ingin workflow sederhana
Contoh Penggunaan
Repository: github.com/user/my-api
Branch: main
Dockerfile: path bisa dikonfigurasi
Auto-deploy: ✅ Aktif
Setiap git push origin main → deployment baru otomatis berjalan.
Deploy dari Docker Image
Cara Kerja
- Build Docker image di local atau CI/CD
- Push ke container registry (Docker Hub, GHCR, dll)
- Masukkan image reference di getlaunch.dev
- Deploy secara manual
Kelebihan
- Fleksibilitas build: Build image di mana saja dengan toolchain apapun
- Pre-tested image: Image sudah di-test sebelum deploy
- Multi-stage pipeline: Cocok untuk pipeline CI/CD yang kompleks
- Registry caching: Image bisa di-cache di registry untuk deploy yang lebih cepat
Kapan Menggunakan
- Kamu sudah punya CI/CD pipeline sendiri (GitHub Actions, GitLab CI, dll)
- Image perlu di-test secara menyeluruh sebelum deploy
- Kamu menggunakan image publik (nginx, redis adapter, dll)
- Build process yang kompleks atau multi-repository
Contoh Penggunaan
Image: ghcr.io/user/my-api:v1.2.0
Auto-deploy: ❌ Tidak tersedia (manual deploy)
Deploy manual melalui tombol Deploy di dashboard.
Perbandingan
| Fitur | Git Repository | Docker Image |
|---|---|---|
| Auto-deploy | ✅ Ya | ❌ Tidak |
| Build di platform | ✅ Ya | ❌ Tidak (sudah di-build) |
| Commit tracking | ✅ Ya | ❌ Tidak |
| Flexibility | Standar | Tinggi |
| Setup complexity | Mudah | Sedang |
| Best for | Active development | Pre-built / CI/CD pipeline |
Rekomendasi
Untuk Pemula
Mulai dengan Git Repository. Setup lebih mudah, auto-deploy membuat workflow lebih lancar, dan kamu bisa fokus ke coding tanpa khawatir build pipeline.
Untuk Tim dengan CI/CD
Gunakan Docker Image jika kamu sudah punya pipeline CI/CD yang mature. Build, test, dan push image di pipeline, lalu deploy image yang sudah lolos testing.
Untuk Quick Prototyping
Gunakan Docker Image dengan image publik. Misalnya, deploy nginx untuk serve static files:
Image: nginx:alpine
Port: 80
Atau deploy aplikasi Node.js dari Docker Hub:
Image: node:18-alpine
Port: 3000
Tips
- Selalu gunakan tag spesifik — Hindari
latest, gunakan versi spesifik sepertiv1.2.0atausha-abc123 - Optimasi Dockerfile — Urutan layer yang benar mempercepat build
- Multi-stage build — Pisahkan build stage dan runtime stage untuk image yang lebih kecil
- Health check — Sediakan endpoint health check di kedua metode

