ホームページ >バックエンド開発 >Golang >Go Binary が Alpine Linux Docker イメージで依存関係を見つけられないのはなぜですか?

Go Binary が Alpine Linux Docker イメージで依存関係を見つけられないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-06 04:57:14801ブラウズ

Why Can't My Go Binary Find Its Dependencies in My Alpine Linux Docker Image?

Alpine Linux Docker にインストールされた Go バイナリがパスに見つかりませんでした

この問題では、ユーザーが Go を実行しようとしていますDocker イメージ上のバイナリ。バイナリは正常にインストールされましたが、パス内に見つかりませんでした。この問題は、Alpine Linux に欠落している glibc に関連しており、プログラムがその依存関係を検出できなくなります。

この問題に対する答えは、musl の libc を、glibc の ld で必要な libc 置換にリンクするシンボリック リンクを追加することです。これは、次の Dockerfile ディレクティブで実現できます。

RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86_64.so.2

このディレクティブは、 /lib64 ディレクトリが存在しない場合はそれを作成し、 musl の libc を glibc の ld に必要な libc 置換にリンクするシンボリック リンクを作成します。これが完了すると、Go バイナリはその依存関係を見つけてパス内で見つかるようになります。

以上がGo Binary が Alpine Linux Docker イメージで依存関係を見つけられないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。