如何在Docker容器中安装最新节点


26

如何在docker ubuntu 15.10容器中安装最新节点? apt-get install nodejs安装版本0.1并且没有npm

谢谢


解决了吗 对我来说,它安装的是npm v 3.10,无法获得6+版本
simPod

Answers:


31

好的,我知道了,

# update 
apt-get update
# install curl 
apt-get install curl
# get install script and pass it to execute: 
curl -sL https://deb.nodesource.com/setup_4.x | bash
# and install node 
apt-get install nodejs
# confirm that it was successful 
node -v
# npm installs automatically 
npm -v

使用curl -sL https://deb.nodesource.com/setup_5.x | bash节点5.x的

替换5为所需的节点版本,例如8、12等。


12
我在网上看到了同样的说明,但是无法安装npm。运行后apt-get -y install nodejs,无法运行npm命令。我知道了/bin/sh: 1: npm: not found
亚历克斯·怀特

我也有同样的问题。
终于

如果我想要确切的版本为8.9.4怎么办?上面的命令失败。
Sourav Prem '18

2
看到这个。在“自述文件”部分中,说明了如何获取其他版本。另外,4的使用寿命即将结束,因此请不要完全使用上述命令。
纳撒尼尔·福特

/bin/sh: apt-get: command not found /bin/sh: apk: command not found使用FROM amazonlinux:1
OZZIE

14

截至2019年1月的更新解决方案:

FROM ubuntu:latest
USER root
WORKDIR /home/app
COPY ./package.json /home/app/package.json
RUN apt-get update
RUN apt-get -y install curl gnupg
RUN curl -sL https://deb.nodesource.com/setup_11.x  | bash -
RUN apt-get -y install nodejs
RUN npm install

但是通过这种方式,您可以获得最新版本的nodejs 11。如果要11.5.4怎么办?
Claudiu Creanga

应该在该deb注册表中具有次要版本,只需将X替换为5.4(在我这边未经测试)
Dan

这不是一个好习惯。您将不会以root身份运行它!
哈立德

10

这就是我一直将nodeJS安装到容器中的方式。就我而言,我正在使用nginx基本图像。

使用以下命令

    apt-get update -yq \
    && apt-get install curl gnupg -yq \
    && curl -sL https://deb.nodesource.com/setup_8.x | bash \
    && apt-get install nodejs -yq

nodeJS安装程序需要GNUPG。没有它,您将收到以下错误消息;

[91mE: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation


2

使用ubuntu 16.04基本映像安装nodejs v8:

FROM ubuntu:16.04

WORKDIR /app

RUN echo "LC_ALL=en_US.UTF-8" >> /etc/environment
RUN echo "LANG=en_US.UTF-8" >> /etc/environment
RUN echo "NODE_ENV=development" >> /etc/environment
RUN more "/etc/environment"
#RUN locale-gen en_US en_US.UTF-8
#RUN dpkg-reconfigure locales

RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get dist-upgrade -y
RUN apt-get install curl htop git zip nano ncdu build-essential chrpath libssl-dev libxft-dev pkg-config glib2.0-dev libexpat1-dev gobject-introspection python-gi-dev apt-transport-https libgirepository1.0-dev libtiff5-dev libjpeg-turbo8-dev libgsf-1-dev fail2ban nginx -y

# Install Node.js
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash
RUN apt-get install --yes nodejs
RUN node -v
RUN npm -v
RUN npm i -g nodemon
RUN nodemon -v

# Cleanup
RUN apt-get update && apt-get upgrade -y && apt-get autoremove -y

我还安装了一些我需要的依赖项,因此您可以根据需要清理此代码。但是它将安装nodejs&npm&nodemon。


1

我正在使用以下Dockerfile设置节点版本8.10.0。

在这里,我使用了NVM(节点版本管理器),因此我们可以选择应该在该容器上安装哪个节点版本。安装节点模块时,请使用npm的绝对路径(例如:/root/.nvm/versions/node/v${NODE_VERSION}/bin/npm install leasot @ latest -g)

   FROM ubuntu:18.04
   ENV NODE_VERSION=8.10.0
   RUN apt-get update && \
       apt-get install wget curl ca-certificates rsync -y
   RUN wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
   ENV NVM_DIR=/root/.nvm
   RUN . "$NVM_DIR/nvm.sh" && nvm install ${NODE_VERSION}
   RUN . "$NVM_DIR/nvm.sh" &&  nvm use v${NODE_VERSION}
   RUN . "$NVM_DIR/nvm.sh" && nvm alias default v${NODE_VERSION}
   RUN cp /root/.nvm/versions/node/v${NODE_VERSION}/bin/node /usr/bin/
   RUN cp /root/.nvm/versions/node/v${NODE_VERSION}/bin/npm /usr/bin/
   RUN /root/.nvm/versions/node/v${NODE_VERSION}/bin/npm install  leasot@latest -g

注意:这是裁剪过的Dockerfile。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.