co2*_*f2e 2 linux node.js docker dockerfile alpine-linux
我正在使用以下 Dockerfile 安装 alpine linux,如下所示,并参考了以下堆栈溢出答案:-如何在 alpine:3.8 中安装 Nodejs v13.0.1?
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
Run Code Online (Sandbox Code Playgroud)
节点版本导致错误
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
Run Code Online (Sandbox Code Playgroud)
如何解决此问题并安装节点 12.4.0-r0?
你不应该安装nodejs-current,因为这个包有助于从版本不存在的边缘存储库安装*当前版本的nodejsnodejs。
在您的情况下,nodejs 12.x 包 已经存在,因此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
Run Code Online (Sandbox Code Playgroud)
输出
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4529 次 |
| 最近记录: |