AEM Dispatcher SDK Docker image for linux/amd64 (also runs on Apple Silicon via Rosetta 2).
Please go to docs/README.html to find the documentation.
Images are available on both registries:
- Docker Hub:
aemdesign/dispatcher-sdk - GitHub Container Registry:
ghcr.io/aem-design/dispatcher-sdk
latest- Latest build from main branchmain- Latest build from main branch2.0.x- Version tags (pushed when git tags are created)
docker run -d --rm -v ${PWD}/src:/mnt/dev/src -p 8080:80 -e AEM_PORT=4503 -e AEM_HOST=host.docker.internal aemdesign/dispatcher-sdk:latestAEM_HOST- AEM instance hostname (default:host.docker.internal)AEM_PORT- AEM instance port (default:4503)
The project uses GitHub Actions for continuous integration and deployment:
- Platform: Images are built for
linux/amd64 - Apple Silicon support: Works seamlessly on M1/M2/M3/M4 Macs via Docker Desktop's Rosetta 2 emulation
- Automated testing: Validates image on
ubuntu-latestrunner - Image analysis: Uses
divefor Docker image layer analysis - Dual registry push: Automatically pushes to Docker Hub and GitHub Container Registry
- Git tag versioning: Pushing a git tag (e.g.,
2.0.188) automatically creates a corresponding Docker image tag
Adobe's mod_dispatcher.so module is only available as a compiled x86_64 binary. ARM64 builds are not feasible without ARM64-compiled binaries from Adobe. The amd64 images work on Apple Silicon Macs via Rosetta 2 emulation in Docker Desktop.
This image is built for linux/amd64 architecture but runs seamlessly on Apple Silicon Macs through Rosetta 2 emulation in Docker Desktop.
-
Docker Desktop for Mac (version 4.25.0 or later recommended)
- Download from: https://www.docker.com/products/docker-desktop
-
Rosetta 2 (usually already installed on modern macOS)
- To verify/install:
softwareupdate --install-rosetta
- To verify/install:
- Open Docker Desktop
- Go to Settings (⚙️ icon) → General
- Enable "Use Rosetta for x86_64/amd64 emulation on Apple Silicon"
- Click Apply & Restart
# Pull and run the dispatcher image
docker pull aemdesign/dispatcher-sdk:latest
docker run --rm aemdesign/dispatcher-sdk:latest uname -m
# Expected output: x86_64 (running via Rosetta 2)- Rosetta 2 emulation provides near-native performance for most workloads
- First container start may be slightly slower (Rosetta translation cache warmup)
- Subsequent starts are fast
- No code changes needed - everything works transparently
The get-action-logs.ps1 PowerShell script provides easy access to GitHub Actions workflow status and logs.
- GitHub CLI (
gh) must be installed and authenticated - Install:
winget install --id GitHub.cli - Authenticate:
gh auth login
# Check current commit's pipeline status (saves logs to logs/ folder by default)
.\get-action-logs.ps1
# Wait for pipeline to complete
.\get-action-logs.ps1 -WaitForCompletion
# Show logs in console
.\get-action-logs.ps1 -ShowLogs
# Force re-download logs
.\get-action-logs.ps1 -Force# View specific run's logs
.\get-action-logs.ps1 -RunId 12345678 -ViewLogs
# Download logs as zip
.\get-action-logs.ps1 -RunId 12345678 -Download
# Watch running workflow in real-time
.\get-action-logs.ps1 -Watch
# List recent runs
.\get-action-logs.ps1 -Limit 10
# Filter by status
.\get-action-logs.ps1 -Status failure
# Filter by workflow
.\get-action-logs.ps1 -Workflow "build.yml"
# Disable auto-save
.\get-action-logs.ps1 -SaveLogs:$falseLogs are automatically saved to the logs/ folder with the following naming convention:
logs/run-{runId}-{commitSha}-{workflowName}-{conclusion}.log
Example: logs/run-18709640324-780320e-build-success.log
Note: The script automatically detects if logs have already been downloaded and skips re-downloading them. Use -Force to re-download existing logs.
See full script documentation: Get-Help .\get-action-logs.ps1 -Full
To create a new version release:
# Tag the commit
git tag 2.0.188
git push origin 2.0.188This will automatically:
- Trigger the build workflow
- Build multi-platform Docker images
- Tag images as
aemdesign/dispatcher-sdk:2.0.188 - Push to both Docker Hub and GitHub Container Registry
- Create a GitHub release
See LICENSE file for details.
