|
11 | 11 |
|
12 | 12 | Docker image based on [aemdesign/oracle-jdk](https://hub.docker.com/r/aemdesign/oracle-jdk/) with FFMPEG and media processing libraries. |
13 | 13 |
|
14 | | -Multi-architecture support (amd64/arm64). |
| 14 | +Docker image for linux/amd64 (also runs on Apple Silicon via Rosetta 2). |
15 | 15 |
|
16 | 16 | ## Docker Images |
17 | 17 |
|
@@ -39,12 +39,51 @@ Images are available on both registries: |
39 | 39 |
|
40 | 40 | The project uses GitHub Actions for continuous integration and deployment: |
41 | 41 |
|
42 | | -- **Multi-platform builds**: Images are built for both `linux/amd64` and `linux/arm64` |
| 42 | +- **Platform**: Images are built for `linux/amd64` |
| 43 | +- **Apple Silicon support**: Works seamlessly on M1/M2/M3/M4 Macs via Docker Desktop's Rosetta 2 emulation |
43 | 44 | - **Automated testing**: Java and FFMPEG versions are verified before pushing |
44 | 45 | - **Image analysis**: Uses `dive` for Docker image layer analysis |
45 | 46 | - **Dual registry push**: Automatically pushes to Docker Hub and GitHub Container Registry |
46 | 47 | - **Git tag versioning**: Pushing a git tag automatically creates a corresponding Docker image tag |
47 | 48 |
|
| 49 | +### Running on Apple Silicon Macs (M1/M2/M3/M4) |
| 50 | + |
| 51 | +This image is built for `linux/amd64` architecture but runs seamlessly on Apple Silicon Macs through **Rosetta 2** emulation in Docker Desktop. |
| 52 | + |
| 53 | +#### Prerequisites |
| 54 | + |
| 55 | +1. **Docker Desktop for Mac** (version 4.25.0 or later recommended) |
| 56 | + - Download from: https://www.docker.com/products/docker-desktop |
| 57 | + |
| 58 | +2. **Rosetta 2** (usually already installed on modern macOS) |
| 59 | + - To verify/install: `softwareupdate --install-rosetta` |
| 60 | + |
| 61 | +#### Enable Rosetta 2 in Docker Desktop |
| 62 | + |
| 63 | +1. Open **Docker Desktop** |
| 64 | +2. Go to **Settings** (⚙️ icon) → **General** |
| 65 | +3. Enable **"Use Rosetta for x86_64/amd64 emulation on Apple Silicon"** |
| 66 | +4. Click **Apply & Restart** |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | +#### Verify It's Working |
| 71 | + |
| 72 | +```bash |
| 73 | +# Pull and run the image |
| 74 | +docker pull aemdesign/java-ffmpeg:latest |
| 75 | +docker run --rm aemdesign/java-ffmpeg:latest uname -m |
| 76 | + |
| 77 | +# Expected output: x86_64 (running via Rosetta 2) |
| 78 | +``` |
| 79 | + |
| 80 | +#### Performance Notes |
| 81 | + |
| 82 | +- **Rosetta 2 emulation** provides near-native performance for most workloads |
| 83 | +- First container start may be slightly slower (Rosetta translation cache warmup) |
| 84 | +- Subsequent starts are fast |
| 85 | +- **No code changes needed** - everything works transparently |
| 86 | + |
48 | 87 | ### Monitoring Pipeline Status |
49 | 88 |
|
50 | 89 | Use the `get-action-logs.ps1` PowerShell script to monitor GitHub Actions workflow status and logs. |
|
0 commit comments