如何在镜像中安装固定版本的node和npm

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近在做前端工程化相关的内容,需要在一个镜像内安装固定版本的 Node.js 及对应的前端环境。接下来就记录一下,如何在 Docker 镜像内安装固定版本的前端相关环境。以下是详细步骤和代码示例。


提示:以下是本篇文章正文内容,下面案例可供参考

一、使用 Dockerfile 创建自定义镜像

我们将使用 Docker 官方的 DinD(Docker in Docker)镜像作为基础镜像,然后在其上安装 Node.js 16.20、Npm、Nginx、Yarn 和 Pnpm 以及其他必要的软件包。

# 使用 Docker 官方的 DinD 镜像作为基础镜像
FROM docker:latest

# 安装 Node.js 16.20、Npm、Nginx、Yarn 和 PNPM 以及其他必要的软件包
RUN apk update && \
    apk add --no-cache \
    nginx \
    curl \
    # 安装 Node.js 16 和 npm
    && apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.15/main nodejs=16.20.2-r0 \
    # 安装特定版本的 npm
    && curl -L https://www.npmjs.com/install.sh | sh \
    && npm install -g npm@8.19.4 \
    # 安装 Yarn 和 PNPM
    && npm install -g yarn pnpm@8.15.8 \
    # 验证安装
    && node -v \
    && npm -v \
    && yarn -v \
    && pnpm -v

二、如何安装固定版本的node及npm

  1. 选择repository
    如果使用默认的源安装16版本的node,会提示找不到对应的包,所以我们使用了以下repository
http://dl-cdn.alpinelinux.org/alpine/v3.15/main
  1. 选择此repository的原因
    那么为什么选择这个repository呢,其他的可不可以呢?
    主要是找到此repository中是否有需要自己需要的node版本
    repository对应node版本截图
  2. 如何安装对应版本的npm
    正常来说,我们如果确认了node版本,应该会自动安装一个和node匹配的npm,但是在镜像内并非如此,大家可以自行尝试。
    如果不指定npm版本,会安装npm最新的稳定版本,我试的时候,安装版本为10.8.1。经过查找,发现repository内有8.1.3版本的npm,那么可以指定安装8.1.3么?答案是不可以的,原因目前没有搞明白,只会报错,找不到对应的包版本。所以我们通过curl安装了最新版本的npm,然后再安装我们想要的8.19.4
    repository对应npm版本截图

总结

在本文中,我们记录了如何在 Docker 镜像中安装固定版本的 Node.js、Npm、和Pnpm。其中主要是固定版本Node和Npm版本的安装,希望对大家有所帮助

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
`vpm` 是一个虚拟化平台管理工具,它通常用于像 Docker 这样的容器技术环境。如果你想要在这样的环境下安装 Node.jsnpm,你需要先确保你的系统已经安装Docker 或者类似的支持容器运行的技术。 以下是使用 `vpm` 安装 Node.jsnpm 的一般步骤: 1. **启动 Docker** (假设你已经在系统上安装Docker): - 打开终端并运行命令 `docker run --rm -it node:latest /bin/bash` 来进入一个新的 Docker 容器,这里使用的是官方的 Node.js 镜像。 2. **安装 Node.js**: - 在容器内部,你可以使用 `apt-get` 或 `yum`(取决于你的镜像源)来安装 npm,因为 Node.js 包含了 npm。如果是在 Alpine Linux 系统,可能会用到 `apk add nodejs npm`。 3. **安装 Node.js 之外的包**: - 如果需要安装特定版本Node.js,可以指定版本,例如 `apk add nodejs=14.17.0 npm=6.14.13`。 - 若要全局安装包,可以使用 `npm install -g package-name`,替换 `package-name` 为你想安装的实际包名。 4. **退出容器**: - 完成安装后,使用 `exit` 或 `CTRL+D` 退出 Docker 容器。 5. **验证安装**: - 在宿主机上,通过 `docker exec -it container_name_or_id npm --version` 检查是否安装成功,`container_name_or_id` 替换为你的实际容器名称或 ID。 注意:`vpm` 并不是标准的 Docker 操作命令,而是某些项目或环境的自定义术语,所以上述步骤可能需要根据具体的上下文或配置进行调整。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A-wliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值