Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 未找到Docker节点_Node.js_Docker - Fatal编程技术网

Node.js 未找到Docker节点

Node.js 未找到Docker节点,node.js,docker,Node.js,Docker,当我运行docker build-t示例时。在下面的屏幕上,我得到一个错误 FROM ruby:2.1 RUN rm /bin/sh && ln -s /bin/bash /bin/sh ENV NVM_DIR /usr/local/nvm ENV NODE_VERSION 4.4.2 RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash \ &&

当我运行
docker build-t示例时。
在下面的屏幕上,我得到一个错误

FROM ruby:2.1
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
ENV NVM_DIR /usr/local/nvm
ENV NODE_VERSION 4.4.2

RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash \
  && source $NVM_DIR/nvm.sh \
  && nvm install $NODE_VERSION \
  && nvm alias default $NODE_VERSION \
  && nvm use default


ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH      $NVM_DIR/v$NODE_VERSION/bin:$PATH

RUN node -v
我得到以下错误:

步骤9:运行节点-v--->在6e3fac36d2fc/bin/sh中运行:节点: 找不到命令命令“/bin/sh-c node-v”返回了非零值 代码:127


无法理解为什么在路径中找不到节点。我也尝试过执行nvm.sh文件,但没有效果

Node version manager是在您的开发机器上切换Node.js版本的优秀应用程序,但Docker提出了一种特殊的映像/容器设计,它既短暂又简单,以支持微服务的“最佳实践”。Docker只是一种运行进程的奇特方式,而不是一个完整的VM。最后一句话对我思考Docker有很大帮助。因此,在这里,您可以通过创建不同版本的图像来简化工作,而不是在一个容器中创建多个版本的Node.js。通过这种方式,您可以在
docker run
命令中引用要运行的节点版本,而不是尝试输入环境变量,试图让NVM选择正确的版本。例如:

docker build -t=jamescharlesworth-node:4.x-latest .
当然,您的Dockerfile将包含您在注释中提到的
RUN
指令中的install命令:

RUN curl -sL https://deb.nodesource.com/setup_4.x | bash - 
RUN apt-get install -y nodejs

为什么在容器中使用nvm?如果您想在容器中使用不同版本的节点,只需在其中创建具有这些不同版本的新图像即可。是的,您的权利,没有真正的问题只是无法解释它为什么不起作用。将其更改为以下选项可以
运行curl-sLhttps://deb.nodesource.com/setup_4.x |bash-RUN apt get install-y nodejs
为了未来的人们,我将键入一个答案。