【问题标题】:install node 15 on nginx alpine image在 nginx 高山映像上安装节点 15
【发布时间】: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?

【问题讨论】:

    标签: node.js docker alpine


    【解决方案1】:

    对于 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
    

    【讨论】:

    • 非常感谢。有用!顺便问一下,有没有 npm@7 的 repo?我能得到的最新的是 npm@6.14.12。
    • 很高兴帮助@xuezhang。 edge/community 上最新的 npm 包似乎是 7.9.0,几天前刚刚更新:npm。我已更新说明以包含最新的 npm 包。
    • 再次感谢您!我想我终于明白了 alpine 包的工作原理。
    • 虽然网页显示最新版本是7.9.0,但是按照你在帖子中提供的Dockerfile运行,我只能下载6.14.12。如果我运行“RUN apk add --update npm=7.9.0-r2 nodejs-current=15.14.0-r0 --repository=dl-cdn.alpinelinux.org/alpine/edge/community”。我会得到“#5 7.710 错误:无法选择包:#5 7.740 npm-14.16.1-r1:#5 7.740 中断:world[npm=7.9.0-r2]”。
    • 我很抱歉@xuezhang!我没有注意到 npm 位于边缘/主存储库,而不是节点的主/社区。我会更新我的答案。
    猜你喜欢
    • 1970-01-01
    • 2020-03-26
    • 2019-04-01
    • 2020-08-03
    • 2020-12-19
    • 2022-01-07
    • 2018-06-16
    • 2020-09-07
    • 1970-01-01
    相关资源
    最近更新 更多