Initial commit - SoundWave v1.0
- Full PWA support with offline capabilities - Comprehensive search across songs, playlists, and channels - Offline playlist manager with download tracking - Pre-built frontend for zero-build deployment - Docker-based deployment with docker compose - Material-UI dark theme interface - YouTube audio download and management - Multi-user authentication support
This commit is contained in:
commit
51679d1943
254 changed files with 37281 additions and 0 deletions
53
docs/BUILD_OPTIMIZATION.md
Normal file
53
docs/BUILD_OPTIMIZATION.md
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# Docker Build Optimization Results
|
||||
|
||||
## Improvements Made
|
||||
|
||||
### 1. Multi-Stage Build
|
||||
- **Before**: Single-stage with build-essential in final image
|
||||
- **After**: Separate builder stage for compilation
|
||||
- **Benefit**:
|
||||
- Removed build-essential (80MB+) from final image
|
||||
- Cleaner separation of build vs runtime dependencies
|
||||
|
||||
### 2. Optimized APT Install
|
||||
- Added `--no-install-recommends` flag
|
||||
- Prevents installing 200+ suggested packages with ffmpeg
|
||||
|
||||
## Build Time Comparison
|
||||
|
||||
| Version | Time | Notes |
|
||||
|---------|------|-------|
|
||||
| Original | 6m 15s (375s) | Single stage, all packages |
|
||||
| Multi-stage | 5m 40s (341s) | **9% faster**, smaller image |
|
||||
| + no-recommends | Expected: ~3-4m | Skips GUI/X11 packages |
|
||||
|
||||
## Bottleneck Analysis
|
||||
|
||||
**Current slowest step**: FFmpeg installation (326s / 96%)
|
||||
- Installs 287 packages including full X11/Mesa/Vulkan stack
|
||||
- Most are unnecessary for headless audio processing
|
||||
- `--no-install-recommends` should skip ~200 optional packages
|
||||
|
||||
## Build Time Breakdown
|
||||
|
||||
```
|
||||
Stage 1 (Builder): 37s
|
||||
├── apt-get build-essential: ~10s
|
||||
└── pip install: 27s
|
||||
|
||||
Stage 2 (Runtime): 327s ← BOTTLENECK
|
||||
├── apt-get ffmpeg: 326s (installing 287 pkgs!)
|
||||
└── Other steps: 1s
|
||||
```
|
||||
|
||||
## Next Optimizations
|
||||
|
||||
1. ✅ Multi-stage build
|
||||
2. ✅ Use --no-install-recommends
|
||||
3. Consider: Pre-built base image with ffmpeg
|
||||
4. Consider: BuildKit cache mounts for apt/pip
|
||||
5. Consider: Minimal ffmpeg build from source
|
||||
|
||||
## Estimated Final Time
|
||||
|
||||
With `--no-install-recommends`: **3-4 minutes** (50% improvement)
|
||||
Loading…
Add table
Add a link
Reference in a new issue