Як встановити останній вузол всередині контейнера докера


26

Як встановити останній вузол всередині контейнера docker ubuntu 15.10? apt-get install nodejsвстановлюється версія 0.1 та npm

Спасибі


Ви це вирішили? Для мене він встановлює npm v 3.10, не може отримати 6+
simPod

Відповіді:


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? Наведена вище команда не працює.
Сурав Прем

2
Дивіться це . У розділі README пояснюється, як отримати іншу версію. Крім того, 4 закінчується, тому не використовуйте вище вказану команду.
Натаніел Форд

/bin/sh: apt-get: command not found /bin/sh: apk: command not foundвикористовуючиFROM amazonlinux:1
OZZIE

14

Оновлене рішення станом на січень 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

але таким чином ви отримуєте останню версію 11 nodejs. що, якщо ти хочеш 11.5.4?
Клавдіу Кріанга

Якщо у реєстрі дебютів слід було б перейти до другорядних версій, просто замініть X на 5.4 (не перевірено на моєму боці)
Dan

Це не є хорошою практикою. Ви не запустите його як корінь!
Халід

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

GNUPG потрібен установщику nodeJS. Без нього ви отримаєте таке повідомлення про помилку;

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

4

Ви можете додати один рядок у свій Dockerfile.

FROM node:8.2

Тут є список підтримуваних імен тегів: https://hub.docker.com/_/node/


27
Ця відповідь не допомагає нікому, хто використовує інше базове зображення.
Чарльз Оффенбахер

Тоді вони можуть скористатися відповіддю Томаша
поставити лабораторії

2

встановлення nodejs v8 з базовим зображенням 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

Я також встановив кілька додаткових залежностей, які мені потрібні, щоб ви могли очистити цей код для своїх потреб. Але він встановлює nodejs & npm & nodemon.


1

Я використовую наступний Dockerfile для установки вузла версії 8.10.0.

Тут я використав NVM (Node Version Manager) , тому ми можемо вибрати, яку версію вузла слід встановити на цьому контейнері. Будь ласка, використовуйте абсолютний шлях npm при встановленні модулів вузла (наприклад: /root/.nvm/versions/node/v${NODE_VERSION}/bin/npm встановіть 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.