Modern Docker images for Asterisk PBX with automated builds and optimized configurations.
π Legacy Code: Original code preserved in the legacy branch.
As defined in asterisk/supported-asterisk-builds.yml:
- Debian Trixie (AMD64)
- Debian Bookworm (AMD64)
- Debian Trixie (AMD64)
More versions and distributions coming soon!
- π Automated Release Discovery: Daily discovery of new Asterisk releases
- π YAML-Driven Configuration: Template-based build system
- ποΈ Multi-Stage Builds: Optimized production-ready images
- ποΈ Database Integration: Full PostgreSQL and MySQL support
- π Modern Features: WebSocket, ARI, WebRTC, and comprehensive telephony features
- π¦ Multi-Platform Ready: ARM64 and AMD64 architecture support
- π§ Template System: Jinja2-based Dockerfile generation
- π§ͺ Automated Testing: Health checks and functionality validation
Complete setup examples are available in the examples/ directory:
Basic Setup (examples/basic/)
A ready-to-use Docker Compose configuration with:
- Production-ready Asterisk container with SIP/RTP port configuration
- Custom configuration templates including PJSIP setup
- Development overrides for local testing and debugging
- Volume management for logs and configuration persistence
cd examples/basic/
cp docker-compose.override.yml.template docker-compose.override.yml
docker compose up -dThe basic example demonstrates proper containerization patterns and provides a starting point for production deployments.
- Template-Based: All builds generated from YAML templates
- Version Discovery: Automatic detection of new Asterisk releases
- Multi-Stage Optimization: Separate builder and runtime environments
- Package Management: Distribution-specific dependency resolution
- Health Monitoring: Comprehensive container health checks
.
βββ asterisk/ # Build artifacts (auto-generated)
βββ configs/ # YAML configurations
βββ templates/ # Build templates
β βββ debian-trixie.yml.template
β βββ debian-bookworm.yml.template
β βββ dockerfile/ # Jinja2 templates
βββ scripts/ # Build automation
β βββ build-asterisk.sh # Main build interface
β βββ discover-latest-versions.sh
β βββ generate-dockerfile.py
βββ lib/ # Python libraries
βββ schema/ # Validation schemas
The system automatically:
- π Scans for new Asterisk releases
- π Updates build matrices
- βοΈ Generates configurations for new versions
- π Triggers builds via GitHub Actions
discover-releases.yml: Daily release discovery (20:00 UTC)build-images.yml: Automated multi-platform builds
While focus is on modern optimized versions, the repository maintains compatibility with all the Asterisk versions starting from 1.2, incluging LTS and Certified releases.
All modifications must be made through templates:
# Edit template (ONLY way to make changes)
vim templates/debian-trixie.yml.template
# Regenerate with --force-config
./scripts/build-asterisk.sh 22.5.2 --force-config
# Test build
docker build -t test asterisk/22.5.2-trixie/# Discover new releases
./scripts/discover-latest-versions.sh --output-yaml --updates-only
# Build newly discovered versions
./scripts/build-asterisk.sh NEW_VERSION# Build Asterisk 22.5.2 on Debian Trixie
./scripts/build-asterisk.sh 22.5.2
# Build specific OS variant
./scripts/build-asterisk.sh 22.5.2 debian bookworm
# Preview what would be built
./scripts/build-asterisk.sh 23.0.0-rc1 --dry-run# Run latest optimized build
docker run --rm -p 5060:5060/udp asterisk:22.5.2_debian-trixie
# Check Asterisk version
docker run --rm asterisk:22.5.2_debian-trixie asterisk -V- β Modern Asterisk versions
- β Multi-stage build optimization
- β Automated release discovery
- π Alpine Linux support
- π ARM64 architecture builds
- π Additional LTS versions (18.x, 20.x)
Contributions are welcome! The new system is designed for maintainability:
- Template Changes: Modify templates in
templates/directory - New Features: Extend YAML schema and build logic
- Version Support: Add new OS/distribution combinations
- Testing: Enhance validation and health checks
# Test template changes
./scripts/build-asterisk.sh VERSION --force-config --verbose
# Validate configurations
python3 scripts/generate-dockerfile.py CONFIG.yml --validate
# Test health checks
docker run --rm IMAGE /usr/local/bin/healthcheck.sh --verboseIf you were using the original andrius/asterisk images:
- Old:
andrius/asterisk:latest - New:
andrius/asterisk:22.5.2_debian-trixie
- Old: Manual Dockerfile edits
- New: YAML-based configuration system
- Enhanced: Modern Asterisk features (WebRTC, ARI, PJSIP)
- Optimized: ~232MB production images vs ~6GB legacy
- Automated: Continuous updates and security patches
- π Issues: Report bugs via GitHub Issues
- π¬ Discussions: Community support and questions
- π Documentation: Detailed guides in the repository
- ποΈ Legacy: Reference implementations in
legacybranch
Status: π§ Active Development - Revitalizing abandoned repository with modern automation