Dockerコンテナ内に最新のノードをインストールする方法


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の正確なバージョンを使用する場合はどうなりますか?上記のコマンドは失敗します。
Souravプレム

2
参照してくださいこれを。READMEセクションでは、異なるバージョンを取得する方法について説明しています。また、4はサポートが終了しているため、上記のコマンドを正確に使用しないでください。
ナサニエルフォード

/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を入手できます。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

nodeJSインストーラーにはGNUPGが必要です。これがないと、次のエラーメッセージが表示されます。

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


2

ubuntu 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(ノードバージョンマネージャー)を使用しているため、そのコンテナーにインストールするノードバージョンを選択できます。ノードモジュールのインストール時に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.