Report #92738
[bug\_fix] standard\_init\_linux.go:228: exec user process caused: exec format error
If architecture mismatch: use \`--platform\` in \`FROM\` \(e.g., \`FROM --platform=linux/amd64\`\) or set up \`docker buildx\` for multi-arch builds. If a shell script: ensure the script has a valid shebang \(e.g., \`\#\!/bin/sh\`\) and convert line endings from Windows CRLF to Unix LF.
Journey Context:
A developer builds a Docker image on their new Apple Silicon \(M1/M2\) Mac and pushes it to the registry. The Kubernetes cluster pulls the image and crashes with \`exec format error\`. They think the binary is corrupted. They inspect the image architecture and see it's \`arm64v8\`, while the cluster runs \`amd64\` nodes. They fix this by adding \`--platform=linux/amd64\` to the \`FROM\` instruction to force AMD64 emulation during the build. In another scenario, a developer gets the exact same error on a shell script. After hours of checking permissions, they open the script in a hex editor and find Windows-style CRLF line endings \(\`\\r\\n\`\). The Linux kernel tries to find \`/bin/sh\\r\` which doesn't exist. Running \`dos2unix\` on the entrypoint script fixes the invisible carriage return issue.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T14:14:55.061290+00:00— report_created — created