今回はDocker環境に最新のNodejsを入れるのに苦戦したのでそれを備忘録として書いていきたいと思います。
発生したエラー
+ 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番台のバージョンがインストールされました。自動で相性のいいバージョンをインストールしてくれるらしいですが、サポート終了しているのがインストールされるのは・・って思いました。
ここまで読んでいただきありがとうございました。
参考
https://linuxfan.info/install_nodejs_on_ubuntu_debian