Bash
執行二進製文件時沒有這樣的文件或目錄,儘管二進製文件存在
我正在安裝
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
user owner ofminikube
設置為 ,並將其權限設置為777
,儘管它仍然沒有幫助。為什麼會
No such file or directory
彈出錯誤以及如何解決?
該
minikube
二進製文件與 GNU C 庫連結,但您的圖像基於使用musl的 Alpine 。執行minikube
失敗,因為它指定的動態連結器 (/lib64/ld-linux-x86-64.so.2
) 不存在。如果您想使用
minikube
,您需要找到基於 musl 的建構(或靜態建構),或者切換到使用 GNU C 庫的基礎映像。
我能夠在容器內使用以下命令執行 minikube:
/lib/ld-musl-x86_64.so.1 minikube
解釋在@Stephen Kitt 的回答中