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

sxpgvts3  于 2023-01-25  发布在  Linux
关注(0)|答案(5)|浏览(190)

我正在使用以下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-r 0?

ztmd8pv5

ztmd8pv51#

您不应该安装nodejs-current,因为此软件包有助于从边缘存储库安装当前版本的nodejs*,而nodejs版本不存在。
在您的情况下,
nodejs 12.x package**已经存在,因此如果要安装旧版本而不是nodejs-current,则应安装nodejs

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
332nm8kg

332nm8kg2#

alpine:3.12现在使用节点v12.22.1
从阿尔卑斯山出发:3.12
RUN节点--版本

py49o6xq

py49o6xq3#

alpine:3.12现在使用节点12.22.10版本
您可以在此链接中根据alpine版本查看最新节点版本

5t7ly7z5

5t7ly7z54#

@Adiii 's answer几乎是正确的,但是必须指定version number。否则,如果您使用较新的映像,将安装最新版本。您也不需要--repository选项,因为您已经将其添加到您的仓库中。这样,您还可以同时添加来自其他仓库的包。最后,如果您需要npm,您应该单独添加它。

RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.12/main/" >> /etc/apk/repositories \
    && apk add --update nodejs=12.22.12-r0 npm=12.22.12-r0 other-package
egdjgwm8

egdjgwm85#

您可以在Docker文件中执行类似的操作。

RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.12/main/ nodejs=12.22.12-r0 npm=12.22.12-r0

您需要为尝试安装的节点版本选择正确的资料档案库。您可以从此处-https://pkgs.alpinelinux.org/packages找到正确的资料档案库、分支等

相关问题