在 alpine linux 上安装 nodejs 版本 12 时出错

Error installing nodejs version 12 on alpine linux

我正在使用以下 Dockerfile 安装 alpine linux,如下所示 并参考了以下堆栈溢出答案:- How to install Nodejs v13.0.1 in alpine:3.8?

FROM alpine:3.9

ENV ALPINE_MIRROR "http://dl-cdn.alpinelinux.org/alpine"
RUN echo "${ALPINE_MIRROR}/v3.10/community/" >> /etc/apk/repositories
RUN apk update && apk add glibc nodejs-current --repository="http://dl-cdn.alpinelinux.org/alpine/v3.10/community/"
RUN node --version

节点版本导致错误

Error relocating /usr/bin/node: uv_gettimeofday: symbol not found
Error relocating /usr/bin/node: uv_udp_connect: symbol not found
Error relocating /usr/bin/node: uv_thread_create_ex: symbol not found
Error relocating /usr/bin/node: uv_udp_getpeername: symbol not found
The command '/bin/sh -c node --version' returned a non-zero code: 127

如何解决这个问题并安装节点 12.4.0-r0?

你不应该安装 nodejs-current,因为这个包有助于从边缘存储库安装 *当前版本的 nodejs其中 nodejs 版本不存在。

在你的情况下,nodejs 12.x package 已经存在,所以你应该安装 nodejs 如果你想安装旧版本而不是 nodejs-current .

FROM alpine:3.9
ENV ALPINE_MIRROR "http://dl-cdn.alpinelinux.org/alpine"
RUN echo "${ALPINE_MIRROR}/v3.11/main/" >> /etc/apk/repositories
RUN apk add nodejs --repository="http://dl-cdn.alpinelinux.org/alpine/v3.11/main/"
RUN node --version

产出

Removing intermediate container a201832610e0
 ---> b0919df78aef
Step 5/5 : RUN node --version
 ---> Running in cd7950f9303b
v12.15.0
Removing intermediate container cd7950f9303b
 ---> ce54af976f81
Successfully built ce54af976f81

alpine:3.12 现在使用节点 v12.22.1

来自 alpine:3.12

运行节点--版本

alpine:3.12 现在使用节点 12.22.10 版本

你可以在这个link

中根据alpine版本查看最新的node版本