ホームページ >バックエンド開発 >Golang >カスタム Go バイナリが Alpine Docker イメージで実行できないのはなぜですか?

カスタム Go バイナリが Alpine Docker イメージで実行できないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 22:43:09225ブラウズ

Why Can't My Custom Go Binary Run in an Alpine Docker Image?

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

この質問は、Alpine Docker でカスタム Go バイナリを実行しようとすると発生します。画像の場合、パス内でバイナリが見つかりません。 Alpine のデフォルトの Go バイナリは期待どおりに動作しますが、カスタム バイナリでは「見つからない」エラーが発生します。

この問題は、Alpine Linux に互換性リンクがないことが原因です。バイナリは特定のダイナミック ライブラリ (例: /lib64/ld-linux-x86-64.so.2) に依存していますが、Alpine にはそのライブラリへの直接のシンボリック リンクがありません。

この問題を解決するには、Dockerfile 内で次のコマンドを実行します:

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

このコマンドは、互換性のある動的ライブラリ間に必要なシンボリック リンクを作成し、カスタム Go バイナリを使用して、必要な依存関係を見つけて正常に実行します。

以上がカスタム Go バイナリが Alpine Docker イメージで実行できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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