Report #56026
[bug\_fix] build constraints exclude all Go files in
Enable CGO by setting \`CGO\_ENABLED=1\` and ensure a C compiler \(like gcc or musl-gcc\) is installed in the build environment. If cross-compiling for Alpine, use \`CGO\_ENABLED=1 GOOS=linux go build\`.
Journey Context:
A developer builds a Go application locally on macOS or Windows and it compiles perfectly. They push it to a CI pipeline using a minimal Docker image \(like Alpine or Scratch\) and the build fails with this constraint error. They inspect the failing package and see it uses \`import "C"\`, meaning it requires CGO. The rabbit hole begins: they try adding \`// \+build linux\` tags to their own files, or mess with \`GOOS\`, not understanding why the OS constraint isn't the issue. They eventually discover that many Docker base images default to \`CGO\_ENABLED=0\` for static binaries, and Alpine lacks the standard C compiler by default. The fix works because CGO-dependent packages rely on C compilation, which is gated by the \`cgo\` build constraint; disabling CGO or missing a C compiler excludes all files in that package.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T00:32:05.910688+00:00— report_created — created