Docker

Docker環境に最新のNodejsを入れる方法

今回はDocker環境に最新のNodejsを入れるのに苦戦したのでそれを備忘録として書いていきたいと思います。

発生したエラー

発生したエラーは下のようになっていて、nodeのバージョンを13にしてしまっていたので、サポートされていないと出ています。nodejsは奇数番号では最新の機能を提供しますが、サポート期間は短くなります。
https://nodejs.org/ja/about/releases/

+ curl -sLf -o /dev/null ‘https://deb.nodesource.com/node_13.x/dists/bullseye/Release
## Your distribution, identified as “bullseye”, is not currently supported, please contact NodeSource at https://github.com/nodesource/distributions/issues if you think this is incorrect or would like your distribution to be considered for support

今回は先月の2021/10月にアクティブ LTSに入ったnodejsのv16を入れることにしました。

入れ方は下のようにまずcurlでダウンロード先のファイルを持ってきてからインストールしてからapt-getコマンドでインストールします。

RUN set -x \
  && curl -sL https://deb.nodesource.com/setup_16.x | bash - \
  && apt-get update -qq \
  && apt-get install -y \
    nodejs \

余談ですが、コンテナでパッケージを入れる際はaptのlistを取得する必要があるため、必ずapt-get updateが必要になります。

補足

curl -sL https://deb.nodesource.com/setup_16.x | bash - 
  • sオプションでじゃまな出力を消せる
  • Lオプションでリダイレクト先にアクセスできる
  • | bash - でcurlで得たスクリプトをbashで実行する
apt-get update -qq 
  • qqオプションでエラー以外は表示しない
  • コンテナでパッケージを入れる際は必ず必要
apt-get install -y
  • -yオプションですべての質問にyesで答える

さいごに

Ruby3.0.0とRuby2.6.5のイメージを使ってnodejsのバージョンを何も指定しない場合、10番台のバージョンがインストールされました。自動で相性のいいバージョンをインストールしてくれるらしいですが、サポート終了しているのがインストールされるのは・・って思いました。

余談ですが、Rubyの公式イメージはDebian上に作られているのが多く、パッケージマネージャはapt-getになるようですね。(DebianとUbuntsuはapt-getでCentOSはyum)
https://hub.docker.com/_/ruby

ここまで読んでいただきありがとうございました。

参考

https://linuxfan.info/install_nodejs_on_ubuntu_debian

ABOUT ME
sakai
三重出身の28歳。前職はメーカーで働いていて、プログラミングスクールに通って未経験からWeb業界に転職しました。Railsをメインで使っていて、AWSも少しできます。音楽を聞くこととYoutubeを見るのが好きです。最近はへきトラ劇場にハマってます

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です