" "执行器获取错误:\ "python2":尝试以交互方式运行容器时在$PATH ": unknown."中找不到可执行文件



我有以下Dockerfile

# Use Python base image from DockerHub 
FROM python:2.7 
WORKDIR /salmon
# INSTALL CMAKE
RUN apt-get update && apt-get install -y sudo 
&& sudo apt-get update 
&& sudo apt-get install -y 
python 
cmake 
wget 
#INSTALL BOOST
RUN wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz 
&& mv boost_1_66_0.tar.gz /usr/local/bin/ 
&& cd /usr/local/bin/ 
&& tar -xzf boost_1_66_0.tar.gz 
&& cd ./boost_1_66_0/ 
&& ./bootstrap.sh 
&& ./b2 install
#INSTALL SALMON
RUN wget https://github.com/COMBINE-lab/salmon/releases/download/v0.14.1/salmon-0.14.1_linux_x86_64.tar.gz 
&& mv salmon-0.14.1_linux_x86_64.tar.gz /usr/local/bin/ 
&& cd /usr/local/bin/ 
&& tar -xzf salmon-0.14.1_linux_x86_64.tar.gz 
&& cd salmon-latest_linux_x86_64/ 
ENV PATH=/salmon/
ADD . /salmon

当我尝试通过sudo docker run -v ~/Documents/Docker/salmon_test/:/data -it salmon:00.00.01交互运行它时,出现错误:

"exec: "python2": executable file not found in $PATH": unknown."

我不明白为什么会出现此错误。我什至添加了sudo apt-get install python命令(我以前没有(,但这也没有解决这个问题。有什么想法吗?

这是因为覆盖了$PATH变量,因此容器无法找到可执行文件。

默认路径值为

/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

因此,当您将其设置为/salmon/时,您可以使用完整路径调用 python,例如/usr/local/bin/python,顺便说一句,您不应该像这样更新 PATH 变量。

最好使用现有的 PATH 变量进行更新。

FROM python:2.7 
ENV PATH="/salmon/:${PATH}"
.
.

最新更新