出现错误“” exec:\“ python2 \”:在$ PATH中找不到可执行文件”:未知。”尝试以交互方式运行容器时

时间:2019-09-19 22:02:28

标签: python-2.7 docker

我有以下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命令(以前没有),但这也没有解决。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是因为覆盖了/变量,结果容器无法找到可执行文件。

默认PATH值为

$PATH

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

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

/usr/local/bin/python