So installieren Sie den neuesten Knoten in einem Docker-Container

26

Wie installiere ich den neuesten Knoten in einem Docker Ubuntu 15.10 Container? apt-get install nodejsInstalliert Version 0.1 und keine Npm

Vielen Dank

Tomasz
quelle
Hast du es gelöst? Für mich installiert es npm v 3.10, kann nicht 6+ bekommen
simPod

Antworten:

31

OK habe es,

# 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

Verwenden Sie curl -sL https://deb.nodesource.com/setup_5.x | bashfür Knoten 5.x

Ersetzen Sie 5durch Ihre gewünschte Knotenversion, z. B. 8, 12 usw.

Tomasz
quelle
12
Ich habe die gleichen Anweisungen im gesamten Web gesehen, kann sie jedoch nicht zum Installieren von npm verwenden. Nach dem apt-get -y install nodejsAusführen von funktioniert das Ausführen eines npm-Befehls nicht mehr. Ich bekomme/bin/sh: 1: npm: not found
Alex White
Ich habe das gleiche Problem.
Und schließlich
Was ist, wenn ich die genaue Version 8.9.4 haben möchte? Der obige Befehl schlägt fehl.
Sourav Prem
2
Sieh das . Im Abschnitt README wird erklärt, wie Sie eine andere Version erhalten. Außerdem ist 4 nicht mehr funktionsfähig. Verwenden Sie daher den obigen Befehl nicht genau.
Nathaniel Ford
/bin/sh: apt-get: command not found /bin/sh: apk: command not foundusingFROM amazonlinux:1
OZZIE
14

Aktualisierte Lösung ab Januar 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
Dan
quelle
Auf diese Weise erhalten Sie jedoch die neueste Version 11 von nodejs. Was ist, wenn Sie 11.5.4 wollen?
Claudiu Creanga
Sollte es bis auf die Nebenversionen in dieser Deb-Registry reichen, ersetzen Sie einfach das X durch 5.4 (auf meiner Seite ungetestet)
Dan
Dies ist keine gute Praxis. Sie werden es nicht als root ausführen!
Khalid,
10

So habe ich nodeJS in einen Container installiert. In meinem Fall verwende ich ein Nginx-Basis-Image.

Verwenden Sie den folgenden Befehl

    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 wird vom nodeJS-Installationsprogramm benötigt. Andernfalls wird die folgende Fehlermeldung angezeigt.

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

Sie können Ihrer Docker-Datei eine einzelne Zeile hinzufügen.

FROM node:8.2

Hier finden Sie eine Liste der unterstützten Tag-Namen: https://hub.docker.com/_/node/

Posit Labs
quelle
27
Diese Antwort hilft niemandem, der ein anderes Basis-Image verwendet.
Charles Offenbacher
Dann können sie Tomasz Antwort verwenden
postulieren Labs
2

Installieren von NodeJS v8 mit Ubuntu 16.04 Basis-Image:

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

Ich habe auch einige zusätzliche Abhängigkeiten installiert, die ich benötige, damit Sie diesen Code für Ihre Anforderungen bereinigen können. Es installiert jedoch nodejs & npm & nodemon.

Lukas
quelle
1

Ich benutze folgende Dockerfile, um Knoten Version 8.10.0 einzurichten.

Hier habe ich NVM (Node Version Manager) verwendet , damit wir auswählen können, welche Knotenversion auf diesem Container installiert werden soll. Bitte geben Sie bei der Installation der Knotenmodule den absoluten Pfad npm an (z. B .: /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

Hinweis: Dies ist eine zugeschnittene Docker-Datei.

Sijo M Cyril
quelle