如何在docker容器中仅设置python 2.7?

如何在docker容器中仅设置python 2.7?,python,node.js,docker,dockerfile,Python,Node.js,Docker,Dockerfile,我有一个节点应用程序,在一个用例中,我使用node调用python脚本。我正试图在docker上安装此应用程序,我的Dockerfile看起来像这样 FROM debian:latest # replace shell with bash so we can source files RUN rm /bin/sh && ln -s /bin/bash /bin/sh # update the repository sources list # and install depend

我有一个节点应用程序,在一个用例中,我使用node调用python脚本。我正试图在docker上安装此应用程序,我的Dockerfile看起来像这样

FROM debian:latest
# replace shell with bash so we can source files
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
# update the repository sources list
# and install dependencies
RUN apt-get update \
&& apt-get install -y curl \
&& apt-get -y autoclean
# nvm environment variables
ENV NVM_DIR /usr/local/nvm
ENV NODE_VERSION 10.15.3
# install nvm
# https://github.com/creationix/nvm#install-script
RUN curl --silent -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash
# install node and npm
RUN source $NVM_DIR/nvm.sh \
&& nvm install $NODE_VERSION \
&& nvm alias default $NODE_VERSION \
&& nvm use default
# add node and npm to path so the commands are available
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
# confirm installation
RUN node -v
RUN npm -v
RUN apt-get -y install python2.7
COPY package.json .
RUN npm install
COPY . .
CMD ["npm","run","start"]
在构建并运行这个容器之后,当我试图调用从节点调用python脚本的用例时,我得到了这个错误

null
events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: spawn /usr/lib/python2.7 EACCES
    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
Emitted 'error' event at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:246:12)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
npm ERR! code ELIFECYCLE
npm ERR! errno 1

您可以使用python基本映像

FROM python:2.7
此基本映像具有预先配置的python,您不需要单独安装python。希望能有帮助

以下是可用图像的列表

如需快速参考,请查看

您可以使用基本图像“FROM python:2.7”

来自python:2.7的

WORKDIR/usr/src/app
复制requirements.txt/
运行pip安装--无缓存目录-r requirements.txt
复制

CMD[“python”、“/your daemon或script.py”]
您确定映像名是PYTHON2.7:最新的吗?因为我得到一个错误,它应该是小写的,甚至连小写都不起作用<代码>对python2.7的拉取访问被拒绝,存储库不存在或可能需要“docker login”更新了答案,您可以找到图像列表。请注意,与答案建议的
python
图像相同,也有。在Dockerfile中使用类似于
nvm
的版本管理器会增加不必要的复杂性。考虑使用POSIX <代码> .<代码>内置的“源”文件,而不是BASH特定的<代码>源代码/代码>扩展名。