LoginSignup
3
1

More than 1 year has passed since last update.

特定のバージョンのnodeをインストールしたDocker環境を用意する方法

Last updated at Posted at 2022-09-21

各バージョンのnodeのインストール方法は、nodesource/distributions: NodeSource Node.js Binary Distributionsで記載されています。

# Using Ubuntu
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
apt-get install -y nodejs

ただこの方法は、仕事の関係でちょっと古いマイナーバージョンが使いたいときに使えません。必ず最新のマイナーバージョンがインストールされるからです。

直接バイナリを取得する

上記の場合は、https://nodejs.org/dist から直接欲しいバージョンをバイナリで取得しましょう。

たとえばv16.0.0であれば、 https://nodejs.org/dist/v16.0.0 から取得できます。各CPU、OSにあったtar.gzがあるはずです。

tarファイルを解凍すると、binなどが入っているので、これを適当なところに移します。
シンボリックリンクを貼ってもいいでしょう。

Dockerfile

v16.0.0を使えるDocker環境の作成例をひとつ挙げておきます。

FROM ubuntu:18.04

RUN apt update && apt install -y wget
RUN wget https://nodejs.org/dist/v16.0.0/node-v16.0.0-linux-x64.tar.gz \
  && tar xvf node-v16.0.0-linux-x64.tar.gz \
  && mv ./node-v16.0.0-linux-x64/bin/node /usr/bin/node \
  && mv ./node-v16.0.0-linux-x64/bin/npm /usr/bin/npm \
  && mv ./node-v16.0.0-linux-x64/bin/npx /usr/bin/npx \
  && mv ./node-v16.0.0-linux-x64/lib/node_modules /usr/lib/node_modules \
  && mv ./node-v16.0.0-linux-x64/share/doc /usr/share/doc \
  && mv ./node-v16.0.0-linux-x64/share/man /usr/share/man \
  && mv ./node-v16.0.0-linux-x64/share/systemtap /usr/share/systemtap

ENTRYPOINT ["/bin/bash"]

その他の方法

Node.js のインストール(ソースから) - Qiitaで紹介されているような方法もありますが、makeコマンドの実行が長時間かかります。

この記事の方法であれば解凍するだけなので時間は相当短いです。

感想

このインストール方法はググっても上手くみつからず、そのため記事に残しておくことにしました。

その背景には、node側が「最新のマイナーバージョンを利用する」ことを前提にしたいのかもと感じました。

というわけで特別な理由がないかぎりは最新のマイナーバージョンを利用できるよう、メンテナンスをきちんとしましょう。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1