Docker Go Binary Found But Other Go Binary Not Found in Path on Alpine Linux
This issue arises when trying to run a Go binary on an Alpine Docker image other than the Docker Go binary. The installed binary is not recognized by the system.
Problem Origin:
The problem lies in the lack of compatibility between the installed Go binary and the underlying musl-based Alpine Linux. Musl is a lightweight C library different from the glibc commonly used in other Linux distributions.
Solution:
To resolve this issue, create a symbolic link between /lib/libc.musl-x86_64.so.1 and /lib64/ld-linux-x86-64.so.2:
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86_64.so.2
This symlink ensures compatibility between the installed Go binary and the musl library, enabling the binary to be recognized and executed as expected.
The above is the detailed content of Why Doesn't My Go Binary Run on Alpine Linux Despite Docker's Go Binary Working?. For more information, please follow other related articles on the PHP Chinese website!