-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
good first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is needed
Description
Description
Create a multi-stage Dockerfile to reduce the final image size and improve deployment efficiency.
Acceptance Criteria
- Create optimized multi-stage Dockerfile
- Use Alpine or distroless base image for final stage
- Final image should be under 50MB
- Include only necessary runtime dependencies
- Add .dockerignore file to exclude unnecessary files
- Update README with Docker usage instructions
Current Advantages
The switch to built-in models provides significant advantages for Docker optimization:
- ✅ No external model files to copy (models compiled into binary)
- ✅ Smaller attack surface (no external dependencies)
- ✅ Faster startup (no model loading from disk)
- ✅ Single binary deployment
Implementation Guidance
- Use rust:alpine for build stage
- Use scratch or alpine for runtime stage
- Copy only the furnace binary (no model files needed)
- Consider static linking for zero dependencies
- Test with --model-name resnet18 (built-in model)
- Update .dockerignore to exclude models/ directory
Expected Image Size
With built-in models, the final image should be significantly smaller:
- Binary size: ~4.5MB
- Base image: ~5MB (Alpine) or ~2MB (distroless)
- Target: Under 20MB (more aggressive than original 50MB target)
Estimated Difficulty
Easy - Half day (easier due to built-in models)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is needed