# もっと Docker 使おうよ!Node を Docker から引っ張ろうよ

Mac のローカル環境で Docker 経由で Node.js をバージョン別に自由切り替えできるようにしたい!
今まで、PHP の開発でよく使っている sail と composer を Docker コマンドの alias 貼って使っていますが、Node は Nodebrew つかってバージョン管理しています。Nodebrew が不便なわけではないけど、Node も Docker から引っ張って使うようにしたらどうかなとやってみました。

Composer の alias

alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
alias composer='docker run --rm -itv $PWD:/app composer:2.7.1'

# alias を貼る

~/.zshrc~/.bashrc などに alias を設定する

alias node18="docker run --rm -it -v $(pwd):/app -w /app node:18 bash"
alias node20="docker run --rm -it -v $(pwd):/app -w /app node:20 bash"
alias node22="docker run --rm -it -v $(pwd):/app -w /app node:22 bash"
alias node24="docker run --rm -it -v $(pwd):/app -w /app node:24 bash"

使い方

node18  # Node.js 18を起動
node20  # Node.js 20を起動
node22  # Node.js 22を起動
node24  # Node.js 24を起動

# npm と yarn などのコマンドに影響するので修正

npm Yarn など他のコマンドもコンテナ内のものが使われる ため、ローカル環境の yarn とは別物で、同じように alias 貼る必要があります。

alias node18="docker run --rm -it --entrypoint node node:18"
alias yarn18="docker run --rm -it --entrypoint yarn node:18"
alias node20="docker run --rm -it --entrypoint node node:20"
alias yarn20="docker run --rm -it --entrypoint yarn node:20"
alias node22="docker run --rm -it --entrypoint node node:22"
alias yarn22="docker run --rm -it --entrypoint yarn node:22"
alias node24="docker run --rm -it --entrypoint node node:24"
alias yarn24="docker run --rm -it --entrypoint yarn node:24"

これでバージョン別で自由に切り替えできるコマンドチームができました。
けど、NVM や nodebrew を使うより、どちのほうが便利かな。。。

# Node.js 公式推薦のバージョン管理方法

何言っても公式は最強ですね。Node 公式では NVM を使うこと推薦されています。

# nvmをダウンロードしてインストールする:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# Node.jsをダウンロードしてインストールする:
nvm install 22

# Node.jsのバージョンを確認する:
node -v # "v22.14.0"が表示される。
nvm current # "v22.14.0"が表示される。

# npmのバージョンを確認する:
npm -v # "10.9.2"が表示される。
2025-02-22
  • javascript

関連記事

Nuxt.js と Ant Design Vue 2 テーマカスタマイズ
Javascript 非同期処理 async と await のメモ
Cookie localStorage sessionStorage の違い
JavaScript ライブラリ aos.js 使ってスクロール連動アニメーション
bootstrap vuejs 使って generate する際に babel が icons ファイル max 500KB エラー
大きいファイルをスライス分割してアップロード
javascript 楽しく遊ぼう!メッセージつぶやくウシ cowsay
Javascript DataTables で excel 風 table 作る
javascript 配列 重複排除
javascript 文字列と配列検索 indexOf findIndex find some includes 関数の違い
国際化 i18n と地域化 L10N
ブラウザーで動く javascript のクッキー操作ライブラリ js-cookie
Jsconfig と Tsconfig
キーコード取得 & キーコード一覧
moment.js 使って日本語曜日対応
ReferenceError: location is not defined
javascript 日本語 shift-js 対応 CSV ダウンロード
nodejs 使う時のエラーたち
Nuxtjs 動的なルーティング静的ページ自動生成
vuejs で omisejapan の決済フォーム作成した時のメモ
javascript password generator ランダム文字列パスワード作成
javascript で作る html から PDF 変換 pdfmake の日本語対応
Javascript 電話番号フォーマット
javascript reduce 連想配列の合計計算覚えよう
react 強制的にレンダリングする方法
正規表現一覧 よく使う検索・置換のパターン
javascript  指定場所にスムーズにスクロールする方法
Sweet Alert swal に複数 content
javascript 開発で出会った TypeError
Javascript var let const 変数宣言の違い
Javascript vuejs の validation 正規表現でフォームチェック作ったときのメモ
vuejs back to top button component 作成
nuxtjs と codeigniter で jwt システム構築
開発におけるコーディングルール・規約
開発時によく使うゼロ埋めパディング作業まとめ