วิธีติดตั้งโหนดล่าสุดภายในคอนเทนเนอร์นักเทียบท่า


26

ฉันจะติดตั้งโหนดล่าสุดภายในตัวเชื่อมต่ออูบุนตู 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
ฉันเห็นคำแนะนำเดียวกันนี้ทั่วทั้งเว็บ แต่ไม่สามารถติดตั้งได้ หลังจากรันapt-get -y install nodejsคำสั่ง npm จะไม่ทำงาน ฉันได้รับ/bin/sh: 1: npm: not found
อเล็กซ์สีขาว

ผมมีปัญหาเดียวกัน.
และสุดท้าย

ถ้าฉันต้องการมีเวอร์ชั่นที่แน่นอนเป็น 8.9.4 ล่ะ? คำสั่งดังกล่าวล้มเหลว
Sourav Prem

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

แต่ด้วยวิธีนี้คุณจะได้รับ nodejs รุ่นล่าสุด 11 ถ้าคุณต้องการ 11.5.4
Claudiu Creanga

ควรจะมีการลงไปที่รุ่นเล็ก ๆ น้อย ๆ ในการที่รีจิสทรี deb เพียงแทนที่ X กับ 5.4 (ยังไม่ทดลองในด้านของฉัน)
แดน

นี่ไม่ใช่วิธีปฏิบัติที่ดี คุณจะไม่เรียกใช้มันในฐานะรูท!
คาลิด

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
คำตอบนี้ไม่ได้ช่วยให้ทุกคนใช้ภาพฐานที่แตกต่างกัน
Charles Offenbacher

จากนั้นพวกเขาสามารถใช้คำตอบของโทมัส
โพสแล็บโพส

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 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

หมายเหตุ: นี่คือไฟล์ครอบตัดที่ถูกครอบตัด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.