如何在镜像中安装固定版本的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个

红包金额最低5元

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

打赏作者

A-wliang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值