我正在尝试升级节点版本以满足我项目的其他依赖项。我尝试了各种方法来找到合适的解决方案。但不幸的是,没有任何工作。我最终尝试this 并没有改变回应。 我当前的节点版本为 v0.10.33 。这实际上是在docker上实现的。我正在附上下面的docker文件。
FROM node:6.2.1
RUN apt-get update --fix-missing
RUN apt-get install -y supervisor
RUN apt-get install -y python-pip && pip install supervisor-stdout
# Cleanup
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN apt-get autoremove -y
#ADD ./config/supervisord.conf /etc/supervisor/conf.d/supervisord- nodejs.conf
RUN ln -s /usr/bin/nodejs /usr/local/bin/node
ADD package.json /
ONBUILD RUN npm install
WORKDIR /app
ADD . /app
RUN npm update
EXPOSE 8080
CMD ["/usr/bin/supervisord", "-n"]
#ENTRYPOINT ["/nodejs/bin/npm", "start"]
因为我不太擅长码头工人和节点不知道发生了什么。即使docker文件以 From节点:6.2.1 启动,节点版本安装也是v0.10.33。这是我遇到的一件奇怪的事情。所有的帮助表示赞赏。
答案 0 :(得分:0)
ln -s
是错误的方法,应该失败。
Step 7 : RUN ln -s /usr/bin/nodejs /usr/local/bin/node
---> Running in 4f1e92a58fe8
ln: failed to create symbolic link '/usr/local/bin/node': File exists
The command '/bin/sh -c ln -s /usr/bin/nodejs /usr/local/bin/node' returned a non-zero code: 1
如果您没有注意到此错误,那么您将使用节点v0.10.33运行旧映像。
将该行更改为
RUN ln -s /usr/local/bin/node /usr/bin/nodejs
如果这是某些构建脚本的一部分,请始终检查命令的退出状态。在bash中,$?
会为您提供返回代码,或set -e
会自动检查您的返回代码。