I used to be going through a difficulty accessing a golang binary inside an alpine container. Aparently the usage of some C libraries was missing from my binary I suppose. Alpine /bin/sh couldn’t discover my app
binary as a ENTRYPOINT for a Dockerfile.
I managed to repair it including to the go construct
command the next variable and flag:
CGO_ENABLED=0
-installsufix cgo
I managed to repair the difficulty and the container began to work correctly, however I’m unsure why. I’ve checked the docs round CGO, and I understood that the utilization of cgo permits the usage of C code as a Golang bundle. My query is how does it especifically remodel a Go binary? How can I verify what’s completely different on the allow/disabled binary file output?
I supose that enabled CGO induced the /bin/sh of alpine to require some modules/libs to have the ability to discover or execute the binary, however it seens blur to me how you can strategy it.
I feel the reply is This as I suspected…gcc paths.