바이너리가 존재하더라도 바이너리를 실행할 때 그러한 파일이나 디렉터리가 존재하지 않습니다.

바이너리가 존재하더라도 바이너리를 실행할 때 그러한 파일이나 디렉터리가 존재하지 않습니다.

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의 답변에 설명되어 있습니다.

관련 정보