我正在使用以下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?
5条答案
按热度按时间ztmd8pv51#
您不应该安装
nodejs-current
,因为此软件包有助于从边缘存储库安装当前版本的nodejs*,而nodejs
版本不存在。在您的情况下,nodejs 12.x package**已经存在,因此如果要安装旧版本而不是
nodejs-current
,则应安装nodejs
。输出
332nm8kg2#
alpine:3.12现在使用节点v12.22.1
从阿尔卑斯山出发:3.12
RUN节点--版本
py49o6xq3#
alpine:3.12现在使用节点12.22.10版本
您可以在此链接中根据alpine版本查看最新节点版本
5t7ly7z54#
@Adiii 's answer几乎是正确的,但是必须指定version number。否则,如果您使用较新的映像,将安装最新版本。您也不需要
--repository
选项,因为您已经将其添加到您的仓库中。这样,您还可以同时添加来自其他仓库的包。最后,如果您需要npm
,您应该单独添加它。egdjgwm85#
您可以在Docker文件中执行类似的操作。
您需要为尝试安装的节点版本选择正确的资料档案库。您可以从此处-https://pkgs.alpinelinux.org/packages找到正确的资料档案库、分支等