首页 > 解决方案 > 在 nginx 高山映像上安装节点 15

问题描述

FROM nginx:1.19.9-alpine
RUN apk add --update nodejs npm

以上Dockerfile安装的版本是14.16.1,是否可以安装节点15.14.0?

标签: node.jsdockeralpine

解决方案


对于 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 也可以从 edge 安装,这次是从 edge/main 存储库:

RUN apk add npm=7.9.0-r2 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main

这次需要进行版本锁定,否则 apk 会npm从 Alpine 3.13、14.16.1-r1 中选择稳定版本。

将它们放在一起,生成的 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

推荐阅读