3.4 KiB
3.4 KiB
Docker Setup untuk Healthcare Admin Dashboard
Deskripsi
File-file Docker ini memungkinkan Anda menjalankan aplikasi Nuxt 3 healthcare admin dashboard dalam kontainer Docker.
File-file yang Dibuat
- Dockerfile - Production-ready multistage build
- Dockerfile.dev - Development Dockerfile dengan hot-reload
- docker-compose.yml - Orchestration untuk production dan development
- .dockerignore - Files yang akan diabaikan saat build
Cara Penggunaan
1. Production Build & Run
Menggunakan Docker:
# Build image
docker build -t healthcare-app .
# Run container
docker run -p 3000:3000 \
-e NODE_ENV=production \
-e AUTH_ORIGIN=http://localhost:3005 \
healthcare-app
Menggunakan Docker Compose:
# Build dan run
docker-compose up
# Run di background
docker-compose up -d
# Stop
docker-compose down
2. Development Mode
Menggunakan Docker Compose dengan dev profile:
# Run development container
docker-compose --profile dev up app-dev
# Run di background
docker-compose --profile dev up -d app-dev
# View logs
docker-compose --profile dev logs -f app-dev
# Stop
docker-compose --profile dev down
Menggunakan Docker Compose untuk development dengan hot-reload:
# Build dev image
docker build -f Dockerfile.dev -t healthcare-app-dev .
# Run dengan volume mounting untuk hot-reload
docker run -p 3030:3030 \
-v $(pwd):/app \
-v /app/node_modules \
-e NODE_ENV=development \
healthcare-app-dev
Environment Variables
Konfigurasi environment variables sesuai kebutuhan:
NODE_ENV-productionataudevelopment(default: production)HOST- Hostname untuk bind (default: 0.0.0.0)PORT- Port server (default: 3000 untuk production, 3030 untuk dev)AUTH_ORIGIN- URL auth server (default: http://localhost:3005)
Mengatur Environment di docker-compose.yml:
environment:
- NODE_ENV=production
- AUTH_ORIGIN=http://your-auth-server:3005
Atau melalui .env file:
# Create .env file di project root
echo "AUTH_ORIGIN=http://localhost:3005" > .env
Build & Push ke Registry (Opsional)
# Build dengan tag
docker build -t your-registry/healthcare-app:latest .
# Push ke registry
docker push your-registry/healthcare-app:latest
# Run dari registry
docker run -p 3000:3000 your-registry/healthcare-app:latest
Troubleshooting
Container gagal start
# Check logs
docker logs <container-id>
# Run dengan interactive terminal
docker run -it -p 3000:3000 healthcare-app sh
Port sudah terpakai
# Gunakan port yang berbeda
docker run -p 8000:3000 healthcare-app
Hot-reload tidak berfungsi di development
Pastikan volume mounting sudah di-setup dengan benar:
docker run -p 3030:3030 \
-v $(pwd):/app \
-v /app/node_modules \
healthcare-app-dev
Performance & Best Practices
- Multi-stage build digunakan untuk mengecilkan ukuran final image
- Dumb-init digunakan untuk signal handling yang proper
- .dockerignore yang optimal untuk mempercepat build
- Volume mounting untuk development mode dengan hot-reload
Spesifikasi
- Base Image: Node.js 20 Alpine (lightweight)
- Production Port: 3000
- Development Port: 3030
- Package Manager: npm atau yarn
Notes
- Pastikan Docker dan Docker Compose sudah terinstall
- Untuk Windows, gunakan WSL2 Docker backend
- AUTH_ORIGIN perlu disesuaikan dengan environment/server Anda