之前是这样在 debian12 中安装 nodejs18 的
FROM python:3.10-bookworm
RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/debian.sources
RUN (apt-get update)
# 调试工具
RUN (apt-get install -y vim wget httpie netcat-openbsd curl gcc make g++ less netcat-openbsd htop ncdu net-tools lsof git)
# https://segmentfault.com/a/1190000044206429
RUN (apt-get install -y nodejs npm)
WORKDIR /code
COPY package.json /code/
COPY package-lock.json /code/
RUN npm install --registry=http://registry.npmmirror.com
但是通过 apt 安装的 nodejs 是 18,现在需要 20
所以看了一下 nodejs 现在官网的意见,发现
https://nodejs.org/en/download/package-manager
发现默认推荐使用 nvm 安装 nodejs
# installs nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
# download and install Node.js (you may need to restart the terminal)
nvm install 20
# verifies the right Node.js version is in the environment
node -v # should print `v20.18.0`
# verifies the right npm version is in the environment
npm -v # should print `10.8.2`
但是令人感到不幸的是,我感觉安装 nvm 以及 nvm 安装 nodejs 都在跨境网络请求
但是我的 cicd 在 aliyun,这是一个网络阻塞和缓慢的风险点,如何安装 nvm 以及 nvm 安装 nodejs 都走国内的网络呢?比如 gitee 脚本和 nvm 大陆镜像?
NVM内部有类似于npm配置镜像源的东西,如果你是阿里云可以尝试这样子修改:
这两个属性都是修改当前nvm的node下载镜像源。