Jak zainstalować najnowszy węzeł w kontenerze dokera

26

Jak zainstalować najnowszy węzeł w kontenerze dokera ubuntu 15.10? apt-get install nodejsinstaluje wersję 0.1 i brak npm

Dzięki

Tomasz
źródło
Rozwiązałeś to? Dla mnie instaluje npm v 3.10, nie może uzyskać 6+
simPod

Odpowiedzi:

31

Ok, rozumiem,

# 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

Użyj curl -sL https://deb.nodesource.com/setup_5.x | bashdla węzła 5.x

Zastąp 5żądaną wersją węzła, np. 8, 12 itd.

Tomasz
źródło
12
Te same instrukcje widziałem w Internecie, ale nie mogę go zainstalować, aby zainstalować npm. Po uruchomieniu apt-get -y install nodejskomendy npm nie działa. Rozumiem/bin/sh: 1: npm: not found
Alex White
Mam ten sam problem.
I wreszcie
Co jeśli chcę mieć dokładną wersję 8.9.4? Powyższe polecenie kończy się niepowodzeniem.
Sourav Prem
2
Zobacz to . W sekcji README wyjaśniono, jak uzyskać inną wersję. Ponadto 4 jest na wyczerpaniu, więc nie używaj dokładnie powyższego polecenia.
Nathaniel Ford
/bin/sh: apt-get: command not found /bin/sh: apk: command not foundusingFROM amazonlinux:1
OZZIE
14

Zaktualizowane rozwiązanie od stycznia 2019 r .:

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
źródło
ale w ten sposób otrzymujesz najnowszą wersję 11 nodejs. co jeśli chcesz 11.5.4?
Claudiu Creanga
Należy mieć na dół do wersji drobnych w tym rejestrze deb, wystarczy zastąpić X z 5,4 (niesprawdzone na mojej stronie)
Dan
To nie jest dobra praktyka. Nie uruchomisz go jako root!
Khalid
10

W ten sposób instalowałem nodeJS w kontenerze. W moim przypadku używam podstawowego obrazu nginx.

Użyj następującego polecenia

    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

Instalator nodeJS potrzebuje GNUPG. Bez niego pojawi się następujący komunikat o błędzie;

[91mE: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation
szałwia
źródło
4

Możesz dodać jedną linię do pliku Docker.

FROM node:8.2

Tutaj znajduje się lista obsługiwanych nazw znaczników: https://hub.docker.com/_/node/

posit labs
źródło
27
Ta odpowiedź nie pomaga nikomu używającym innego obrazu podstawowego.
Charles Offenbacher
Następnie mogą skorzystać z odpowiedzi Tomasza
posit labs
2

instalacja nodejs v8 z obrazem podstawowym 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

Zainstalowałem również dodatkowe zależności, których potrzebuję, abyś mógł wyczyścić ten kod dla swoich potrzeb. Ale instaluje nodejs i npm & nodemon.

Lukas
źródło
1

Korzystam z następującego pliku Docker do skonfigurowania węzła w wersji 8.10.0.

Tutaj użyłem NVM (Node Version Manager) , więc możemy wybrać wersję węzła, która powinna być zainstalowana na tym kontenerze. Proszę użyć bezwzględnej ścieżki npm podczas instalowania modułów węzła (np .: /root/.nvm/versions/node/v${NODE_VERSION}/bin/npm zainstaluj leasot @ najnowsze -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

Uwaga: jest to przycięty plik Docker.

Sijo M. Cyryl
źródło