😺
手順書にあるコマンドを理解して使っているのかい
最初に
そんなことも知らずにコマンド実行してたのか、って言う人はさようなら🛌ばいばい
学んだこと
-
コマンド
docker run --rm -t -w /app -v $(pwd):/app node:20-alpine sh -c 'apk update && apk upgrade --no-cache && npm install -g npm@latest && npm install'
-
ひとつずつ見ていく
- runコマンド
- コンテナ実行
- rmオプション
- コンテナ終了時にコンテナ自動的に削除
- ないとコンテナが乱立する
- tオプション
- tty ( 端末デバイス )の意味
- wオプション
- 作業ディレクトリを指定
- vオプション
- 現在の作業ディレクトリをコンテナ内にマウント
- pwd
- カレントディレクトリの表示
- print working directory の略、これ何回聞いても忘れる
- shコマンド
- cオプション
- 文字列を渡せる(シングルクオートで渡す必要あり)
- cオプション
- node:20-alpine
- node20のdockerイメージ
- Alpine Linuxをもとに作られているイメージ、超軽量
- apk
- Alpine Linuxのパッケージマネージャ
- apk update
- 利用可能パッケージのインデックスを更新
- apk upgrade
- 現在インストールされているパッケージをアップグレード
- npm install
- gオプション
- グローバルインストール
- ディレクトリにパスが通るようになり、どこからでもコマンドが呼び出せるようになる
- gオプション
- runコマンド
-
つまり以下をしている?(間違ってたら誰か教えてください)
- 現在のディレクトリをnode:20-alpineのイメージにマウント
- node:20-alpineにインストールされているパッケージを更新
- npmを最新にアップグレード
- package.jsonに書かれているモジュールをインストール
-
なぜ
npm install
が2回あるのか?-
npm install -g npm@latest
でnpmの最新化 - 最後の
npm install
でpackage.jsonに書かれているモジュールをインストール
-
いましめ
手順書に甘えずちゃんと理解して使え
Discussion