【问题标题】:Docker Node not installing on alpineDocker 节点未安装在 alpine 上
【发布时间】:2021-11-14 22:01:03
【问题描述】:

我有以下 Docker 文件指令:

RUN apk update && apk add --no-cache wget
RUN apk add --no-cache --repository http://nl.alpinelinux.org/alpine/edge/main libuv \
    && apk add --no-cache --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/main nodejs nodejs-npm \
    && echo "NodeJS Version:" "$(node -v)" \
    && echo "NPM Version:" "$(npm -v)"

从昨天开始我可以毫无问题地构建,但今天我收到以下错误:

1.16.0-alpine: Pulling from library/nginx
Digest: sha256:270bea203d2fc3743fb9ce0193325e188b7e6233043487e3d3cf117ea4d3f337
Status: Image is up to date for nginx:1.16.0-alpine
 ---> ef04b00b089d
Step 2/22 : COPY ./default.conf /etc/nginx/conf.d/default.conf
 ---> Using cache
 ---> 5c602aac5bf7
Step 3/22 : RUN apk update && apk add --no-cache wget
 ---> Using cache
 ---> 92194be397fe
Step 4/22 : RUN apk add --no-cache --repository http://nl.alpinelinux.org/alpine/edge/main libuv     && apk add --no-cache --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/main nodejs nodejs-npm     && echo "NodeJS Version:" "$(node -v)"     && echo "NPM Version:" "$(npm -v)"
 ---> Using cache
 ---> dbe387c64016
Step 5/22 : RUN node --version
 ---> Running in 9051ea381dae
Error relocating /usr/bin/node: RSA_get0_pss_params: symbol not found
The command '/bin/sh -c node --version' returned a non-zero code: 127
Cleaning up file based variables
00:00
ERROR: Job failed: exit status 1

知道如何解决RSA_get0_pss_params: symbol not found吗?

谢谢

编辑:

整个 Docker 文件:

FROM nginx:1.16.0-alpine

RUN apk update && apk add --no-cache wget
RUN apk add --no-cache --repository http://nl.alpinelinux.org/alpine/edge/main libuv \
    && apk add --no-cache --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/main nodejs nodejs-npm \
    && echo "NodeJS Version:" "$(node -v)" \
    && echo "NPM Version:" "$(npm -v)" 

RUN node --version
RUN apk add --update npm

奇怪的是,我昨天 12:00 左右正在构建,而在 17:00,构建不再工作了。

【问题讨论】:

  • 这能回答你的问题吗? Install node in Dockerfile?
  • 这里可以使用Docker Hubnode镜像吗,如果需要Nginx,在单独的容器中运行?
  • 你甚至可以使用基于 alpine 镜像的node 镜像并添加必要的包/[如果需要的话应用程序。
  • 请发布完整的 Dockerfile

标签: node.js docker nginx


【解决方案1】:

解决办法:

FROM nginx:1.16.0-alpine
RUN apk update && apk add --no-cache wget
RUN apk add --no-cache libuv \
    && apk add --no-cache --update-cache  nodejs nodejs-npm \
    && echo "NodeJS Version:" "$(node -v)" \
    && echo "NPM Version:" "$(npm -v)"

说明:

首先查看接受的答案:Alpine linux in Docker container => `env: can't execute 'node': No such file or directory`

Alpine 发行版基于名为 musl-libc 的 libc 变体。您正在安装的节点二进制文件是针对 glibc 编译的,因为大多数(全部?)其他标准发行版使用更常用的 glibc 标准库。

您从两个不同的 alpine 镜像安装 libuv 和 node.js,原因可能是 libuv IMO 配置错误或过时。

【讨论】:

  • 我找到了解决方案,Alpine 更改了他的 repos
  • @Green 恭喜
猜你喜欢
  • 2016-01-30
  • 2016-11-28
  • 2016-06-11
  • 2020-11-29
  • 2018-07-13
  • 2019-07-20
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
相关资源
最近更新 更多