도커 컨테이너 안에 최신 노드를 설치하는 방법


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를위한

58, 12 등 원하는 노드 버전으로 교체하십시오 .


12
웹에서 동일한 지침을 보았지만 npm을 설치할 수는 없습니다. 을 실행 한 후 apt-get -y install nodejsnpm 명령을 실행해도 작동하지 않습니다. 내가 얻을/bin/sh: 1: npm: not found
알렉스 화이트

나는 같은 문제를 가지고있다.
그리고 마지막으로

정확한 버전을 8.9.4로 사용하려면 어떻게해야합니까? 위의 명령이 실패합니다.
라프 프렘

2
참조 . 읽어보기 섹션에서 다른 버전을 얻는 방법을 설명합니다. 또한 4는 수명이 다하므로 위의 명령을 정확하게 사용하지 마십시오.
Nathaniel Ford

/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.5.4를 원한다면 어떻게해야합니까?
Claudiu Creanga

해당 deb 레지스트리의 부 버전으로 내려 가야합니다. 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


2

우분투 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 (Node Version Manager) 을 사용 했으므로 해당 컨테이너에 설치할 노드 버전을 선택할 수 있습니다. 노드 모듈을 설치할 때 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입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.