提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、使用 Dockerfile 创建自定义镜像
- 二、如何安装固定版本的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
- 选择repository
如果使用默认的源安装16版本的node,会提示找不到对应的包,所以我们使用了以下repository
http://dl-cdn.alpinelinux.org/alpine/v3.15/main
- 选择此repository的原因
那么为什么选择这个repository呢,其他的可不可以呢?
主要是找到此repository中是否有需要自己需要的node版本
- 如何安装对应版本的npm
正常来说,我们如果确认了node版本,应该会自动安装一个和node匹配的npm,但是在镜像内并非如此,大家可以自行尝试。
如果不指定npm版本,会安装npm最新的稳定版本,我试的时候,安装版本为10.8.1。经过查找,发现repository内有8.1.3版本的npm,那么可以指定安装8.1.3么?答案是不可以的,原因目前没有搞明白,只会报错,找不到对应的包版本。所以我们通过curl安装了最新版本的npm,然后再安装我们想要的8.19.4
总结
在本文中,我们记录了如何在 Docker 镜像中安装固定版本的 Node.js、Npm、和Pnpm。其中主要是固定版本Node和Npm版本的安装,希望对大家有所帮助