Docker Go-Binärdatei gefunden, aber andere Go-Binärdatei nicht im Pfad unter Alpine Linux gefunden
Dieses Problem tritt auf, wenn versucht wird, eine Go-Binärdatei auszuführen ein anderes Alpine Docker-Image als die Docker Go-Binärdatei. Die installierte Binärdatei wird vom System nicht erkannt.
Ursprung des Problems:
Das Problem liegt in der mangelnden Kompatibilität zwischen der installierten Go-Binärdatei und der zugrunde liegenden musl-basierten Datei Alpine Linux. Musl ist eine leichtgewichtige C-Bibliothek, die sich von der glibc unterscheidet, die üblicherweise in anderen Linux-Distributionen verwendet wird.
Lösung:
Um dieses Problem zu beheben, erstellen Sie einen symbolischen Link zwischen /lib/ libc.musl-x86_64.so.1 und /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
Dieser Symlink stellt die Kompatibilität zwischen der installierten Go-Binärdatei und der Musl-Bibliothek sicher und ermöglicht, dass die Binärdatei wie erwartet erkannt und ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWarum läuft mein Go Binary nicht unter Alpine Linux, obwohl Dockers Go Binary funktioniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!