【发布时间】:2021-04-09 09:48:30
【问题描述】:
FROM nginx:1.19.9-alpine
RUN apk add --update nodejs npm
上述Dockerfile安装的版本是14.16.1,是否可以安装节点15.14.0?
【问题讨论】:
FROM nginx:1.19.9-alpine
RUN apk add --update nodejs npm
上述Dockerfile安装的版本是14.16.1,是否可以安装节点15.14.0?
【问题讨论】:
对于 Node.js 版本 15.14.0,从边缘社区存储库安装 nodejs-current 包:
apk add nodejs-current=15.14.0-r0 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
这会将nodejs-current 固定到版本15.14.0,因此apk upgrade 不会对其进行升级。为了允许将来升级,只需删除 =15.14.0-r0 部分。
最新的npm 包,7.9.0,也可以从边缘安装,这次是从边缘/主存储库:
RUN apk add npm=7.9.0-r2 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main
这次需要进行版本锁定,否则 apk 会从 Alpine 3.13、14.16.1-r1 中选择稳定的 npm 版本。
放在一起,生成的 Dockerfile:
FROM nginx:1.19.9-alpine
RUN apk add nodejs-current --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community && \
apk add npm=7.9.0-r2 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main
RUN node --version && npm --version
node 和 npm 的版本检查:
/ # node --version
v15.14.0
/ # npm --version
7.9.0
【讨论】: