首頁 > 後端開發 > Golang > 儘管 Docker 的 Go 二進位檔案可以工作,但為什麼我的 Go 二進位檔案無法在 Alpine Linux 上運行?

儘管 Docker 的 Go 二進位檔案可以工作,但為什麼我的 Go 二進位檔案無法在 Alpine Linux 上運行?

Linda Hamilton
發布: 2024-12-13 18:58:10
原創
426 人瀏覽過

Why Doesn't My Go Binary Run on Alpine Linux Despite Docker's Go Binary Working?

在Alpine Linux 上找到Docker Go 二進位文件,但在路徑中未找到其他Go 二進位檔案

嘗試在Linux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux》上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux 上執行GoLinux”二進位檔案時會出現此問題除Docker Go 二進位檔案之外的Alpine Docker 映像。系統無法辨識已安裝的二進位。

問題來源:

問題在於已安裝的 Go 二進位與底層基於 musl 的兼容性缺乏阿爾卑斯Linux。 Musl 是一個輕量級 C 函式庫,與其他 Linux 發行版中常用的 glibc 不同。

解決方案:

要解決此問題,請在 /lib/ 之間建立符號連結libc.musl-x86_64.so.1和/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
登入後複製

此符號連結確保已安裝的Go 二進位檔案和musl 庫之間的相容性,使二進位檔案能夠按預期被識別和執行。

以上是儘管 Docker 的 Go 二進位檔案可以工作,但為什麼我的 Go 二進位檔案無法在 Alpine Linux 上運行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板