ARM64/Apple Silicon Support Request
Summary
The NCA Toolkit Docker image currently only supports AMD64 architecture, preventing it from running natively on ARM64 systems including Apple Silicon Macs (M1/M2/M3/M4) and ARM64 Linux servers.
Environment Details
- System Architecture: ARM64 (aarch64)
- OS: Ubuntu Linux (ARM64) / macOS (Apple Silicon)
- Docker Version: Latest
- Error:
exec /app/run_gunicorn.sh: exec format error
Current Behavior
When attempting to run the Docker container on ARM64 systems:
docker run --platform linux/amd64 -p 8780:8080 \
-e API_KEY=thekey \
-e S3_ENDPOINT_URL=http://localhost:9090 \
-e S3_ACCESS_KEY=admin \
-e S3_SECRET_KEY=password123 \
-e S3_BUCKET_NAME=nca-toolkit \
-e S3_REGION=None \
stephengpope/no-code-architects-toolkit:latest
Result: exec /app/run_gunicorn.sh: exec format error
Attempted Solutions
- Platform forcing:
--platform linux/amd64 - Failed
- Building from source: Encountered missing ARM64 packages (
libsvtav1-dev)
- Docker Compose platform specification - Failed
Build Issues Encountered
When building from source on ARM64:
E: Package 'libsvtav1-dev' has no installation candidate
The current Dockerfile includes several packages that may not be available or compatible with ARM64 architecture.
Expected Behavior
The Docker image should support multi-architecture builds, specifically:
linux/amd64 (current)
linux/arm64 (requested)
Business Impact
- Apple Silicon Mac users cannot run the toolkit locally
- ARM64 cloud instances (cheaper alternatives) cannot be used
- Development workflow is limited to AMD64 systems only
Suggested Solutions
Option 1: Multi-Architecture Build
Use Docker's buildx to create multi-arch images:
docker buildx build --platform linux/amd64,linux/arm64 -t stephengpope/no-code-architects-toolkit:latest --push .
Option 2: ARM64-Specific Dockerfile
Create a separate Dockerfile for ARM64 that:
- Replaces unavailable packages with ARM64 equivalents
- Uses ARM64-compatible base images
- Handles architecture-specific dependencies
Option 3: Conditional Package Installation
Modify the existing Dockerfile to conditionally install packages based on architecture:
RUN if [ "$(uname -m)" = "aarch64" ]; then \
apt-get install libsvtav1enc-dev; \
else \
apt-get install libsvtav1-dev; \
fi
Additional Context
This issue affects the growing number of users on:
- Apple Silicon Macs (M1/M2/M3/M4)
- ARM64 cloud instances (AWS Graviton, etc.)
- ARM64 development boards and servers
ARM64/Apple Silicon Support Request
Summary
The NCA Toolkit Docker image currently only supports AMD64 architecture, preventing it from running natively on ARM64 systems including Apple Silicon Macs (M1/M2/M3/M4) and ARM64 Linux servers.
Environment Details
exec /app/run_gunicorn.sh: exec format errorCurrent Behavior
When attempting to run the Docker container on ARM64 systems:
Result:
exec /app/run_gunicorn.sh: exec format errorAttempted Solutions
--platform linux/amd64- Failedlibsvtav1-dev)Build Issues Encountered
When building from source on ARM64:
The current Dockerfile includes several packages that may not be available or compatible with ARM64 architecture.
Expected Behavior
The Docker image should support multi-architecture builds, specifically:
linux/amd64(current)linux/arm64(requested)Business Impact
Suggested Solutions
Option 1: Multi-Architecture Build
Use Docker's
buildxto create multi-arch images:docker buildx build --platform linux/amd64,linux/arm64 -t stephengpope/no-code-architects-toolkit:latest --push .Option 2: ARM64-Specific Dockerfile
Create a separate Dockerfile for ARM64 that:
Option 3: Conditional Package Installation
Modify the existing Dockerfile to conditionally install packages based on architecture:
Additional Context
This issue affects the growing number of users on: