110 lines
2.8 KiB
Markdown
110 lines
2.8 KiB
Markdown
# Docker Usage Guide
|
|
|
|
Proyek ini memiliki dua konfigurasi Docker untuk keperluan yang berbeda:
|
|
|
|
## 📁 File Konfigurasi
|
|
|
|
### 1. `docker-compose.yml` - Production/Staging
|
|
|
|
- **Target**: `production` (optimized build)
|
|
- **Environment**: Production settings
|
|
- **Debug**: Disabled
|
|
- **Asset handling**: Built dan optimized
|
|
- **Use case**: Deploy ke server production/staging
|
|
|
|
### 2. `docker-compose.local.yml` - Local Development
|
|
|
|
- **Target**: `local` (development build)
|
|
- **Environment**: Local development settings
|
|
- **Debug**: Enabled
|
|
- **Asset handling**: Vite dev server terpisah
|
|
- **Use case**: Development di local machine
|
|
|
|
## 🚀 Cara Penggunaan
|
|
|
|
### Local Development (Recommended)
|
|
|
|
```bash
|
|
# Setup awal (otomatis)
|
|
./setup-local.sh
|
|
|
|
# Atau manual
|
|
docker-compose -f docker-compose.local.yml up -d --build
|
|
```
|
|
|
|
### Production/Staging
|
|
|
|
```bash
|
|
# Dengan environment variables
|
|
docker-compose up -d --build
|
|
|
|
# Atau dengan custom .env
|
|
APP_ENV=production APP_DEBUG=false docker-compose up -d --build
|
|
```
|
|
|
|
## 🔧 Perbedaan Utama
|
|
|
|
| Aspek | Local Development | Production |
|
|
| ---------------- | -------------------------- | --------------------- |
|
|
| **File** | `docker-compose.local.yml` | `docker-compose.yml` |
|
|
| **Target** | `local` | `production` |
|
|
| **Debug** | Enabled | Disabled |
|
|
| **Assets** | Vite dev server | Pre-built & optimized |
|
|
| **Permissions** | User mapping | Standard www-data |
|
|
| **Hot Reload** | ✅ Available | ❌ Not needed |
|
|
| **Node Modules** | Kept for dev | Removed after build |
|
|
|
|
## 📋 Command Cheat Sheet
|
|
|
|
### Local Development
|
|
|
|
```bash
|
|
# Start
|
|
docker-compose -f docker-compose.local.yml up -d
|
|
|
|
# Stop
|
|
docker-compose -f docker-compose.local.yml down
|
|
|
|
# Logs
|
|
docker-compose -f docker-compose.local.yml logs -f app
|
|
|
|
# Execute commands
|
|
docker-compose -f docker-compose.local.yml exec app php artisan [command]
|
|
```
|
|
|
|
### Production
|
|
|
|
```bash
|
|
# Start
|
|
docker-compose up -d
|
|
|
|
# Stop
|
|
docker-compose down
|
|
|
|
# Logs
|
|
docker-compose logs -f app
|
|
|
|
# Execute commands
|
|
docker-compose exec app php artisan [command]
|
|
```
|
|
|
|
## 🛠 Development Workflow
|
|
|
|
1. **Daily development**: Gunakan `docker-compose.local.yml`
|
|
2. **Testing production build**: Gunakan `docker-compose.yml`
|
|
3. **Deploy**: Gunakan `docker-compose.yml` di server
|
|
|
|
## ❓ FAQ
|
|
|
|
**Q: Apakah perlu kedua file?**
|
|
A: Ya, keduanya memiliki fungsi berbeda:
|
|
|
|
- `docker-compose.local.yml` untuk development
|
|
- `docker-compose.yml` untuk production/staging
|
|
|
|
**Q: File mana yang digunakan untuk development?**
|
|
A: Gunakan `docker-compose.local.yml` dengan menjalankan `./setup-local.sh`
|
|
|
|
**Q: Bagaimana cara switch antara development dan production?**
|
|
A: Gunakan flag `-f` untuk specify file yang ingin digunakan
|