代码之家  ›  专栏  ›  技术社区  ›  Hexy

Pin nodejs版本在Alpine上没有从源代码生成

  •  0
  • Hexy  · 技术社区  · 5 年前

    FROM behance/docker-nginx:8.5-alpine Kibana抛出一个错误,指出它需要节点版本 10.15.2 因为阿尔卑斯默认提供 10.16.0 来自apk回购。

    curl -O https://nodejs.org/download/release/v10.15.2/node-v10.15.2-linux-x64.tar.gz
    tar xzf node-v10.15.2-linux-x64.tar.gz
    

    ENV PATH="/node-v10.15.2-linux-x64/bin:${PATH}"

    当我这么做的时候 node -v 我说node时出错 /node-v10.15.2-linux-x64/bin/node 即使存在也找不到。

    是否可以安装node 10.15.2 不从源头上建造?

    0 回复  |  直到 5 年前
        1
  •  3
  •   atline    5 年前

    不,你没有机会。

    事实上,虽然最新的阿尔卑斯山使用 node10.16 ,请参见 this node10.14 this 节点10.14 apk add 安装 node10.15 版本,因为它们甚至没有存储在apk中央回购。

    然后,下载预构建包,如 https://nodejs.org/download/release/v10.15.2/node-v10.15.2-linux-x64.tar.gz musl libc 而官方的nodejs二进制是用 glibc 在linux世界中,libc更为常见。类似的讨论供您参考 here .

    因此,唯一的解决方案是使用源代码进行构建,可以参考 this 向dockerfile中添加您的内容。额外的, multi-stage builds 在您的场景中是首选的。