繁体   English   中英

Dockerfile ubuntu仅安装节点版本4.2

[英]Dockerfile ubuntu only installs node version 4.2

这个dockerfile安装了nodejs 4.2版本,我不明白为什么。 有人可以帮我安装节点9.2。 我试着取出-no install-recommends命令无济于事。

向她添加更多文本,因为即使我已经在网上浏览了很简单的问题,但堆栈仍然无法让我发布此消息,但仍然无济于事。向她添加更多文本,因为堆栈无法让我发布此消息尽管这是一个非常简单的问题,但我在网上浏览了很长时间却无济于事。

   FROM ubuntu:16.04
    RUN apt-get update && apt-get install -y --no-install-recommends curl sudo
    RUN curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
    RUN apt-get install -y nodejs && \
    apt-get install --yes build-essential
    RUN apt-get install --yes npm

    #VOLUME "/usr/local/app"

# Set up C++ dev env
RUN apt-get update && \
   apt-get dist-upgrade -y && \
   apt-get install gcc-multilib g++-multilib cmake wget -y  && \
   apt-get clean autoclean && \
   apt-get autoremove -y
   #wget -O /tmp/conan.deb -L https://github.com/conan-io/conan/releases/download/0.25.1/conan-ubuntu-64_0_25_1.deb && \
   #dpkg -i /tmp/conan.deb

#ADD ./scripts/cmake-build.sh /build.sh
#RUN chmod +x /build.sh
#RUN /build.sh


RUN mkdir -p /usr/local/app
WORKDIR /usr/local/app
COPY package.json /usr/local/app
RUN ["npm", "install"]
COPY . .


RUN echo "/usr/local/app/dm" > /etc/ld.so.conf.d/mythrift.conf
RUN echo "/usr/lib/x86_64-linux-gnu" >> /etc/ld.so.conf.d/mythrift.conf
RUN echo "/usr/local/lib64" >> /etc/ld.so.conf.d/mythrift.conf
RUN ldconfig

RUN chmod +x dm/dm3
RUN ldd dm/dm3
RUN ["chmod", "+x", "dm/dm3"]
RUN ["chmod", "777", "policy"]
RUN ls -al .
RUN ["nodejs", "-v"]
CMD ["nodejs", "-v"]

编辑

显然,对于OP来说,准确地运行此版本的ubuntu很重要。 这是一个基于FROM ubuntu:16.04的示例:

FROM ubuntu:16.04

RUN apt-get update && apt-get install -y --reinstall ca-certificates curl build-essential \
&& curl -s https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.xz \
-o node-v9.9.0-linux-x64.tar.xz && tar xf node-v9.9.0-linux-x64.tar.xz \
&& cd node-v9.9.0-linux-x64 && cp -r bin include lib share /usr/local \
&& rm -rf /node-v9.9.0-linux-x64.tar.xz /node-v9.9.0-linux-x64

CMD ["node", "-v"]

建立

docker build -t testing .

测试

docker run testing
v9.9.0

请注意,这仅处理与节点相关的事情,而不考虑所有其他依赖项。

获得节点4的原因是因为apt-get仅安装软件包的默认版本,而该版本永远不会是最新版本。

尽管此问题存在于Docker容器中,但它并非特定于Docker,因为它将在Docker内部或外部的任何Ubuntu安装中发生。

要获得最新版本,您有2个选项。

(1)使用PPA安装:

cd ~
curl -sL https://deb.nodesource.com/setup_9.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install nodejs
nodejs -v

(2)使用节点版本管理器(nvm)安装

后者很棒,因为它使您可以安装多个版本的Node并在它们之间快速跳转。

这是有关此主题的令人惊奇的《数字海洋》文章的链接:

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04

这是NVM的链接... https://github.com/creationix/nvm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM