gpt4 book ai didi

node.js - 找不到 Docker nodejs

转载 作者:搜寻专家 更新时间:2023-10-31 23:34:56 25 4
gpt4 key购买 nike

当我在下面运行 docker build -t example . 时出现错误

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

我收到以下错误:

Step 9 : RUN node -v ---> Running in 6e3fac36d2fc /bin/sh: node: command not found The command '/bin/sh -c node -v' returned a non-zero code: 127

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

最佳答案

Node 版本管理器是用于在开发机器上切换 Node.js 版本的出色应用程序,但 Docker 需要一种特定类型的图像/容器设计,这种设计既短暂又精简到最基本的,以便支持微服务的“最佳实践”。 Docker 只是运行进程的一种奇特方式,而不是完整的虚拟机。最后一句话对我如何思考 Docker 有很大帮助。因此,在这里,您可以通过创建不同版本的图像来简化自己的工作,而不是在一个容器中放置多个版本的 Node.js。这样,您可以在 docker run 命令中引用要运行的 Node 版本,而不是尝试输入环境变量来试图让 NVM 选择正确的版本。例如:

docker build -t=jamescharlesworth-node:4.x-latest .

当然,您的 Dockerfile 中将包含您在评论中提到的 RUN 指令中的安装命令:

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

关于node.js - 找不到 Docker nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36367498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com