Skip to content

Docker-Based Build System: Simplify WebRtcNet Setup & Save 71% on CI Costs #6

@General-Fault

Description

@General-Fault

Overview

This is a product requirements document (PRD) for implementing a two-tier Docker-based build system that separates WebRTC compilation (expensive, infrequent) from WebRtcNet compilation (cheap, frequent).

Full PRD: See PRD-docker-build-system.md in the repository

Problem

  • New contributor setup takes 2+ hours (Windows SDK, depot_tools, 10GB download)
  • Each build takes 60-90 minutes (rebuilds WebRTC every time)
  • No Codespaces support (requires full Windows machine)
  • Expensive CI costs (~/year on GitHub Actions)

Solution

  • WebRTC Builder Image: Builds once monthly, publishes to GHCR (~250 MB, .45/build)
  • WebRtcNet Builder Image: Uses WebRTC as base, builds in 10-15 minutes (.05-0.10/build)
  • Result: 71-76% cost savings + Codespaces support + 15-20 min build time for new contributors

Expected Outcomes

✅ Developer setup: 10 minutes (vs. 2+ hours)
✅ Local rebuild: 15 minutes (vs. 60+ minutes)
✅ CI costs: .45/month (vs. .00/month, 71% savings)
✅ Codespaces support: Now viable for full development
✅ New contributor friction: Dramatically reduced

Key Components

  1. Dockerfile.webrtc - Multi-stage build for WebRTC artifacts
  2. Dockerfile.webrtcnet - Lightweight build inheriting WebRTC base
  3. GitHub Actions workflows - Smart change detection + conditional builds
  4. Documentation - CONTRIBUTING.md with setup instructions for Docker, Local, Codespaces

Details

See PRD-docker-build-system.md for complete details including:

  • 20 detailed user stories
  • Implementation decisions with rationale
  • Testing strategy
  • Out-of-scope items
  • Cost savings validation and success metrics

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions