Fehler bei der Installation von nodejs Version 12 unter alpine Linux

Sep 16 2020

Ich verwende die folgende Docker-Datei, um Alpine Linux wie folgt zu installieren, und verweise auf die folgende Antwort zum Stack-Überlauf: - Wie installiere ich 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

Die Knotenversion führt zu einem Fehler

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

Wie kann ich das beheben und den Knoten 12.4.0-r0 installieren?

Antworten

4 Adiii Sep 16 2020 at 19:56

Sie sollten nicht installieren nodejs-current, da dieses Paket hilfreich ist, um * die aktuelle Version von nodejs aus dem Edge-Repository zu installieren, in dem nodejskeine Version vorhanden ist.

In Ihrem Fall ist das Paket nodejs 12.x bereits vorhanden. Sie sollten es also installieren, nodejswenn Sie stattdessen eine ältere Version installieren möchten 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

Ausgabe

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