Fix Docker image platform mismatch in install-dev.sh causing exec format error
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 368
Description
On x86_64 Linux VMs (e.g., Proxmox), Docker images in halfstack may be pulled with wrong architecture, causing containers to fail with:
exec /usr/bin/docker-entrypoint.sh: exec format error
Affected images include redis, minio, and various exporter images (oliver006/redis_exporter, prometheuscommunity/postgres-exporter, etc.).
Root cause: When QEMU binfmt_misc handlers are registered (e.g., from prior docker buildx or qemu-user-static usage), Docker may pull images for the wrong platform. Even after removing binfmt handlers, previously cached images retain the wrong architecture.
Fix: Set DOCKER_DEFAULT_PLATFORM=linux/amd64 before docker compose pull in install-dev.sh (around line 980), ensuring all images are pulled for the correct platform regardless of binfmt state.
JIRA Issue: BA-5531
Contributor guide
Research direction
Start in install-dev.sh around line 980 and inspect the docker compose pull command. Ensure the development images target linux/amd64, then verify the pull on an x86_64 Linux VM, including redis, minio, and exporter images, completes without exec format errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, shell
- Domain
- devops, infrastructure
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100