lablup / lablup/backend.ai

Fix Docker image platform mismatch in install-dev.sh causing exec format error

Open Beginner friendly
#10,718 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.