Comment installer le dernier nœud dans un conteneur Docker


26

Comment installer le dernier nœud dans un conteneur Docker Ubuntu 15.10? apt-get install nodejsinstalle la version 0.1 et pas de npm

Merci


L'avez-vous résolu? Pour moi, il installe npm v 3.10, ne peut pas obtenir 6+
simPod

Réponses:


31

OK, j'ai compris

# 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

Utiliser curl -sL https://deb.nodesource.com/setup_5.x | bashpour le noeud 5.x

Remplacez 5par la version de votre nœud souhaitée, par exemple 8, 12, etc.


12
J'ai vu ces mêmes instructions partout sur le Web, mais je n'arrive pas à installer npm. Après l'exécution de apt-get -y install nodejs, l'exécution d'une commande npm ne fonctionne pas. Je reçois/bin/sh: 1: npm: not found
Alex White

J'ai le même problème.
Et enfin le

Et si je veux avoir la version exacte sous 8.9.4? La commande ci-dessus échoue.
Sourav Prem

2
Regardez ça . Dans la section README, il explique comment obtenir une version différente. De plus, 4 est en fin de vie, alors n'utilisez pas exactement la commande ci-dessus.
Nathaniel Ford

/bin/sh: apt-get: command not found /bin/sh: apk: command not founden utilisantFROM amazonlinux:1
OZZIE

14

Solution mise à jour en janvier 2019:

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

mais de cette façon, vous obtenez la dernière version 11 de nodejs. que faire si vous voulez 11.5.4?
Claudiu Creanga

Devrait avoir jusqu'aux versions mineures dans ce registre deb, remplacez simplement le X par 5.4 (non testé de mon côté)
Dan

Ce n'est pas une bonne pratique. Vous ne l'exécuterez pas en tant que root!
Khalid

10

C'est ainsi que j'ai installé nodeJS dans un conteneur. Dans mon cas, j'utilise une image de base nginx.

Utilisez la commande suivante

    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

GNUPG est requis par le programme d'installation de nodeJS. Sans cela, vous obtiendrez le message d'erreur suivant;

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


2

installation de nodejs v8 avec l'image de base ubuntu 16.04:

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

J'ai également installé certaines dépendances supplémentaires dont j'ai besoin pour que vous puissiez nettoyer ce code selon vos besoins. Mais il installe nodejs & npm & nodemon.


1

J'utilise Dockerfile suivant pour configurer la version 8.10.0 du nœud.

Ici, j'ai utilisé NVM (Node Version Manager) , nous pouvons donc choisir la version de nœud à installer sur ce conteneur. Veuillez utiliser le chemin absolu de npm lors de l'installation des modules de noeud (par exemple: /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

Remarque: il s'agit d'un Dockerfile recadré.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.