バイナリが存在してもバイナリを実行しても、そのようなファイルやディレクトリは存在しません。

バイナリが存在してもバイナリを実行しても、そのようなファイルやディレクトリは存在しません。

minikube次の一部としてインストール中ですDockerfile

FROM jenkins/jnlp-agent-alpine
RUN curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && \
        install minikube-linux-amd64 /home/jenkins/minikube -o jenkins -g jenkins -m 777 && \         
        rm minikube-linux-amd64
    

イメージをビルドして実行した後:

$docker build -t app:latest .
$docker run -it app:latest bash

#minikube` binary exists

bash-5.1$ls -l minikube 
-rwxrwxrwx    1 jenkins  jenkins   74953166 Jul 19 15:44 minikube

#however running the binary `minikube` returns `No such file or directory` error:

bash-5.1$ ./minikube 
bash: ./minikube: No such file or directory

デバッグの一環として、jenkinsユーザーを所有者にしてminikube権限を設定しましたが、777まだ役に立ちませんでした。

エラーが発生する理由No such file or directoryと回避策は何ですか?

答え1

このminikubeバイナリはGNU Cライブラリにリンクされていますが、画像はAlpineに基づいています。マスラーminikube指定した動的リンカー()が/lib64/ld-linux-x86-64.so.2存在しないため、実行に失敗しました。

これを使用するには、minikubemuslベースのビルド(または静的ビルド)を検索するか、GNU Cライブラリを使用する基本イメージに切り替える必要があります。

答え2

コンテナ内では、次のコマンドを使用してminikubeを実行できます。

/lib/ld-musl-x86_64.so.1 minikube

に基づいてこれ回答

@Stephen Kittの回答に記載されています。

関連情報