2016-06-08 152 views
0

我试图升级节点版本以满足我的项目的其他依赖项。我已经尝试过各种方法来寻找合适的解决方案。但不幸的是,没有任何工作。我最终尝试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文件以开头,从节点:6.2.1节点版本安装是v0.10.33。这是我正在经历的一件奇怪的事情。所有有点帮助都表示赞赏。

回答

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会自动检查你的返回码。

+0

谢谢你的帮助。我会试一试,让你知道这个评论。 –