Skip to content

Commit 3999e73

Browse files
committed
Remove ARM64 support - build amd64 only with Rosetta 2 support for Mac
- Remove linux/arm64 from build platforms - Update README from multi-architecture to amd64-only - Add comprehensive Mac/Rosetta 2 setup instructions - Update CI/CD documentation - Reason: Simplify builds and align with dispatcher-sdk constraints
1 parent 524ccd7 commit 3999e73

2 files changed

Lines changed: 42 additions & 3 deletions

File tree

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ jobs:
9191
uses: docker/build-push-action@v2
9292
with:
9393
context: .
94-
platforms: linux/amd64,linux/arm64
94+
platforms: linux/amd64
9595
push: true
9696
tags: ${{ steps.tags.outputs.tags }}
9797

README.md

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
Docker image based on [aemdesign/oracle-jdk](https://hub.docker.com/r/aemdesign/oracle-jdk/) with FFMPEG and media processing libraries.
1313

14-
Multi-architecture support (amd64/arm64).
14+
Docker image for linux/amd64 (also runs on Apple Silicon via Rosetta 2).
1515

1616
## Docker Images
1717

@@ -39,12 +39,51 @@ Images are available on both registries:
3939

4040
The project uses GitHub Actions for continuous integration and deployment:
4141

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
4344
- **Automated testing**: Java and FFMPEG versions are verified before pushing
4445
- **Image analysis**: Uses `dive` for Docker image layer analysis
4546
- **Dual registry push**: Automatically pushes to Docker Hub and GitHub Container Registry
4647
- **Git tag versioning**: Pushing a git tag automatically creates a corresponding Docker image tag
4748

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+
![Docker Desktop Rosetta Setting](https://docs.docker.com/desktop/images/rosetta.png)
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+
4887
### Monitoring Pipeline Status
4988

5089
Use the `get-action-logs.ps1` PowerShell script to monitor GitHub Actions workflow status and logs.

0 commit comments

Comments
 (0)