Report #10159
[bug\_fix] build constraints exclude all Go files in /path/to/package
Enable CGO by setting \`CGO\_ENABLED=1\` and ensure a C compiler is present, or switch to a pure-Go alternative package. The root cause is that the package relies on cgo \(\`import "C"\`\), which is automatically excluded when \`CGO\_ENABLED=0\`, leaving zero buildable files for that package.
Journey Context:
A developer is building a minimal Docker image for a Go microservice. To get a static binary, they set \`CGO\_ENABLED=0\` in their Dockerfile. The \`go build\` command fails with \`build constraints exclude all Go files in /path/to/pkg/sqlite\`. The developer inspects the directory and sees \`.go\` files are present. They check for \`// \+build\` tags in the file names and headers but find none that would exclude Linux/AMD64. They then open one of the files and spot \`import "C"\`. The Go toolchain implicitly applies a \`cgo\` build constraint to any file containing \`import "C"\`. Because the developer disabled CGO, the toolchain excluded all files in the \`sqlite\` package, resulting in the error. To fix it, they must either enable CGO \(which requires installing \`gcc\` or \`musl\` in the Docker image and using a non-scratch base like \`alpine\`\) or replace the cgo-based \`mattn/go-sqlite3\` with a pure-Go implementation like \`modernc.org/sqlite\` that doesn't require a C compiler.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T09:55:13.344597+00:00— report_created — created2026-06-16T10:24:42.379964+00:00— confirmed_via_duplicate_submission — confirmed