Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9360

VSCode リモートコンテナの Python3.8 にnvm , nodeのインストールをDockerファイルに記述する

$
0
0
リモートコンテナ用のdockerイメージ(Debian11, Python3.8)の環境でnodeを使いたかったので入れた いろんなOSさわると、遭遇するエラーもさまざま 入れた対象OS root ➜ /workspaces $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye Dockerファイルに記載してnvmとnodeをインストール(Rebuild Containerで実行して1分かからず) 操作しているユーザー環境変数の設定はしていない apt upgrade はしなくても良い node install ではビルドしない(-s 指定しない) install.sh が実行されると、/usr/local/share/nvm に nvmが入っていることを気づかずにやっていてつまづいた 作成したDeockerfile(https://gist.github.com/ssugimoto/acd7fe5d25b9adaf149dd3c8a3bdbf2a )、以下も同じ FROM mcr.microsoft.com/vscode/devcontainers/python:3.8 RUN apt-get update \ && apt-get -y install curl \ && apt-get autoremove -y \ && apt-get clean -y \ RUN apt-get upgrade \ && apt-get -y install curl ENV NVM_DIR /usr/local/share/nvm ENV NODE_VERSION 12.22.1 # # Install nvm with node and npm RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash \ && . $NVM_DIR/nvm.sh \ && nvm install $NODE_VERSION \ && nvm alias default $NODE_VERSION \ && nvm use default WORKDIR /workspaces 入れたバージョンの確認 root ➜ /workspaces/test $ root ➜ /workspaces/test $ nvm --version 0.38.0 root ➜ /workspaces/test $ node --version v12.22.1 root ➜ /workspaces/test $ npm --version 6.14.12 root ➜ /workspaces/test $ python --version Python 3.8.11 エラーの対応 /bin/sh: nvm: not found docker , "bash: nvm: command not found" nvm コマンドがありません。手動でインストールすると発生しないけど、Dockerfileだと発生する RUN コマンド1行で(まとめて)記載する必要があるんだけど、1行で記載しても解決できず 参考 その1) https://zenn.dev/uttk/articles/a7b085c7774ae9 こちらでは、alpine linux のため少し異なる。環境変数適用が違う。Ubuntuの記載がある。 その2)https://stackoverflow.com/questions/25899912/how-to-install-nvm-in-docker こちらの stack overflowを参考にしました その3)https://gist.github.com/remarkablemark/aacf14c29b3f01d6900d13137b21db3a#file-dockerfile こちらも 参考にしました。ディスカッションが最もあり参考になる。 debianでのDockerファイルにnvm installを記載する例、ここでも /usr/local/nvm のパスで自身の環境とは一致しなかった ENV NVM_DIR /usr/local/nvm ・・・ . $NVM_DIR/nvm.sh の2つの箇所、 /usr/local/nvm にはインストールされないので変更が必要 なぜ、node用のリモートコンテナを使わないのか node12または14が入っているリモートコンテナ OS Debian10ではPython3.7がインストール済で、Python3.8 を apt install でインストールできなかった。Pyhon3.8をmakeする必要があり、コンテナが使えるまでの時間が長すぎた Dockerファイルに書かないで、通常のインストール ほぼ、以下のコマンド入る(sudo ついてるけど、rootで作業しています) # sudo apt update # sudo apt upgrade # sudo apt-get install curl nvm のインストール # curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash # nvm --version # nvm install v12.22.1 コンテナビルドに続いて Amplif cli 入れたら3分くらいかかった(176sec) devcontainer.json に "postCreateCommand": "npm install -g @aws-amplify/cli@5.3.1", を追記した場合に、npm install が3分かかった npm install ログの最後 + @aws-amplify/cli@5.3.1 added 1404 packages from 775 contributors in 176.666s

Viewing all articles
Browse latest Browse all 9360

Trending Articles