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

无法在Alpine Linux上运行节点gdal:“未找到符号”

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

    我正在尝试使用为我的项目添加Gitlab CI node-gdal GDAL ). 由于性能原因,CI配置基于Alpine Linux docker映像,但我无法使其正常工作。Gitlab CI作业在运行时失败节点.js需要的脚本 node-gdal 出现以下错误:

    internal/modules/cjs/loader.js:718
      return process.dlopen(module, path.toNamespacedPath(filename));
                     ^
    
    Error: Error relocating /builds/project-0/node_modules/gdal/lib/binding/node-v64-linux-x64/gdal.node: __printf_chk: symbol not found
        at Object.Module._extensions..node (internal/modules/cjs/loader.js:718:18)
        at Module.load (internal/modules/cjs/loader.js:599:32)
        at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
        at Function.Module._load (internal/modules/cjs/loader.js:530:3)
        at Module.require (internal/modules/cjs/loader.js:637:17)
        at require (internal/modules/cjs/helpers.js:22:18)
        at Object.<anonymous> (/builds/project-0/node_modules/gdal/lib/gdal.js:12:29)
        at Module._compile (internal/modules/cjs/loader.js:689:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
        at Module.load (internal/modules/cjs/loader.js:599:32)
    

    已尝试安装 glibc for Alpine 但还是没有运气。

    .gitlab公司-词yml

    image: node:lts-alpine
    
    stages:
      - test
    
    test:
      stage: test
      before_script:
        - apk add --no-cache bash ca-certificates wget
        - wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
        - wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk
        - apk add glibc-2.29-r0.apk
      script:
        - yarn
        - node index.js
    

    这是一个 repo 复制问题,这是一个 link to failed job

    有没有办法使用阿尔卑斯山上的图书馆?

    0 回复  |  直到 5 年前
        1
  •  1
  •   ezze    5 年前

    多亏了 this this node-gdal 使用以下CI配置与Alpine上的共享GDAL库链接( link to passed job ):

    image: node:lts-alpine
    
    stages:
      - test
    
    test:
      stage: test
      before_script:
        - apk add --no-cache bash make gcc g++ python linux-headers udev --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing --repository http://dl-cdn.alpinelinux.org/alpine/edge/main gdal gdal-dev
      script:
        - npm install gdal --build-from-source --shared_gdal
        - node index.js